Internationalisering
Börja med att gå igenom hela dokumentet om du inte har fått andra instruktioner.
Datafisher har olika IT-system och lösningar, varav några är översatta till fler än 20 språk. Att översätta dem kan skilja sig lite från vad du är van vid: översättning görs i ett särskilt system och all text delas upp i strängar, varav de flesta bara är en fras eller några meningar långa. Strängarna kan innehålla variabler som, beroende på typ, måste lämnas som de är eller där endast en viss del ska översättas. Detta är standard vid översättning av IT-system, så att lära sig göra det korrekt kommer också att vara användbart på andra håll i framtiden.
Förutsättningar (tillhandahålls av Datafisher):
- Inloggningsuppgifter
- Projekt, komponenter och språk som ska översättas och/eller verifieras
- Vilken typ av strängar som ska användas (alla, endast oöversatta, endast de som behöver granskning osv.)
Resultat:
- Du har lärt dig hur översättningssystemet används
I detta avsnitt
- Weblate – översättningssystemet och hur det används
- Variabler – variabler som kan finnas i strängarna
- ICU-formatet – ICU-variabelformatet
- Hjälpverktyg för ICU-format – ett verktyg som hjälper dig att översätta strängar som innehåller ICU-formatvariabler
Weblate
Datafisher använder ett system som heter Weblate för att hantera översättningar, på https://wl.datafisher.org/.
I Weblate finns projekt som består av en eller flera komponenter. Komponenterna innehåller strängarna som behöver översättas. Eftersom de flesta projekt du översätter är under aktiv utveckling läggs nya strängar till hela tiden.
Weblate håller reda på vem som översatte vad, hur många ord som översatts och utför olika verifieringskontroller för att säkerställa att översättningarna är giltiga.
Gå till översättningsgränssnittet
I detta exempel använder vi "demo" som användare, "LMS" som projekt, "admin" som komponent och "Estonian" som språk.
Först behöver du gå till https://wl.datafisher.org/ och logga in.

Därefter behöver du välja projekt, komponent och språk som du ska översätta.

Du kanske redan ser rätt projekt, komponent och språk efter att du har loggat in.
Om inte:
- välj "Projects" i toppmenyn
- välj "Browse all projects"
- välj relevant projekt i projektlistan
- välj relevant komponent i komponentlistan
- välj relevant språk i språklistan.
Därefter behöver du välja vilken typ av strängar som ska behandlas. Detta tillhandahålls av Datafisher.

Du kan välja:
- Alla strängar – innehåller allt
- Översatta strängar – innehåller endast översatta strängar som inte är markerade som att de behöver redigering (verifiering)
- Oavslutade strängar – innehåller strängar som inte är översatta eller har markerats som att de behöver redigering (verifiering)
- Strängar markerade för redigering – innehåller strängar som markerats som att de behöver redigering (verifiering)
- Strängar med misslyckade kontroller – innehåller strängar som har potentiella fel
Det finns två översättningsgränssnitt:
- Det fullständiga gränssnittet där strängar kan översättas en i taget
- Zen-gränssnittet som listar många strängar på samma sida och ger en potentiellt snabbare översättningsupplevelse.
Klicka på relevant länk på raden för relevant strängsamling för att öppna önskat översättningsgränssnitt.
Du bör också se komponenten "Glossary" i komponentlistan.
Ordlistan innehåller vissa projektspecifika termer och deras förklaringar för att hjälpa översättare och säkerställa att termerna alltid översätts på samma sätt.
Innan du börjar översätta de faktiska komponenterna måste du bekanta dig med ordlistan och hitta bra översättningar för termer som ännu inte är översatta där.
Det fullständiga gränssnittet
Detta gränssnitt visar bara en sträng åt gången.

Du kan se den engelska versionen (eller annan källspråksversion) högst upp ("Documentation" i exemplet) och behöver skriva översättningen i rutan under den ("Dokumentatsioon" i exemplet).
Ibland är översättningen redan gjord och behöver granskas. I så fall är kryssrutan "Needs editing" markerad. Om du ser att översättningen är korrekt avmarkerar du den och fortsätter till nästa sträng. Om du är osäker på översättningen (t.ex. på grund av brist på kontext) kan du också kontrollera den själv för att granska den senare.
När du är klar klickar du på "Save and continue" för att gå till nästa sträng. Du kan också använda pilarna högst upp för att navigera mellan strängar.
Zen-gränssnittet
Detta gränssnitt visar flera strängar åt gången.

Du kan se den engelska versionen (eller annan källspråksversion) till vänster och behöver skriva översättningen i rutan bredvid den.
Ibland är översättningen redan gjord och behöver granskas. I så fall är kryssrutan "Needs editing" markerad. Om du ser att översättningen är korrekt avmarkerar du den och fortsätter till nästa sträng. Om du är osäker på översättningen (t.ex. på grund av brist på kontext) kan du också kontrollera den själv.
När du är klar kan du bara flytta markören till nästa ruta. Du kan också göra det genom att trycka på TAB och gå till föregående översättning genom att trycka på SHIFT+TAB.
Variabler
Du kan stöta på två typer av variabler.
För det första enkla variabler, till exempel:
Hello, {name}!
I detta fall får du inte ändra den gula delen, utan endast översätta de gröna delarna.
För det andra ICU-formatsträngar, till exempel:
Enrollment closes { nr, plural, =1 {one hour} other {# hours} } before the event.
I detta fall ska du endast översätta de gröna delarna. Mer om detta och ett verktyg som hjälper dig att översätta dem finns nedan.
I båda fallen kan det vara användbart att använda knappen "Clone to translation" för att kopiera den engelska versionen till översättningsrutan och sedan ersätta de engelska orden med orden på ditt språk.
ICU-formatet
ICU-formatet används för att undvika att översätta många olika varianter av strängar på nytt när de innehåller tal eller variabler.
Till exempel, med följande:
Enrollment closes { nr, plural, =1 {one hour} other {# hours} } before the event.
Meningen kan läsas på två sätt beroende på talet:
- Enrollment closes one hour before the event.
- Enrollment closes 5 hours before the event.
På vissa språk som ryska, polska, tjeckiska, rumänska, ukrainska osv. finns det fler varianter:
- Запись заканчивается за час до мероприятия.
- Запись заканчивается за 2 часа до мероприятия.
- Запись заканчивается за 5 часов до мероприятия.
I så fall skulle den översatta versionen vara:
Запись заканчивается за { nr, plural, =1 {час} few {# часа} other {# часов} } до мероприятия.
Du hittar de exakta nycklarna som ska användas på ditt språk här: https://www.unicode.org/cldr/charts/43/supplemental/language_plural_rules.html.
Dessutom kan det finnas strängar där ett alternativ väljs i stället för tal, till exempel:
A mandatory {type, select, assessment {assessment} feedback {feedback survey} other {assessment} } must be taken after the training.
Meningen kan läsas på tre sätt beroende på typen:
- A mandatory assessment must be taken after the training.
- A mandatory feedback survey must be taken after the training.
- A mandatory assessment must be taken after the training. (Standarden kräver att ett standardalternativ finns, vilket är varför det i detta fall också finns ett "other"-alternativ som duplicerar det första.)
För numeriskt val betyder texten i orange det antal som texten i följande klamrar motsvarar:
- =1 – en, t.ex. "one hour"
- few – används på språk som ryska, polska, tjeckiska, rumänska, ukrainska osv. för 2-4 timmar, # ersätts med talet
- other – alla andra fall, # ersätts med talet
Hjälpverktyg för ICU-format
Här finns ett litet verktyg som hjälper dig med översättningen av ICU-formatsträngar.
English (source) version
Paste the English (source) version into the following box to view the available variants.
Variants
Please enter a valid ICU string with case selection into the box above.
Target version
Paste the English version into the following box, translate into the target language, and paste it back into Weblate. For languages that require the "few" option add it in case of a numeric selection (copy from here: few {# часа} ).
Variants
Please enter a valid ICU string with case selection into the box above.