Jak przetłumaczyć Redmine na dowolny język

5/26/2020
5 minutes
Lukáš Beňa -> Łukasz Beňa

Jedną z największych zalet Redmine'a jest to, że możesz łatwo przetłumaczyć tę aplikację do zarządzania projektami na dowolny język, który chcesz.

Uwaga: Informacje zawarte w tym artykule dotyczą tylko Redmine i nie odnoszą się do Easy Redmine.

Jeśli chodzi o tłumaczenie Redmine, musisz przetłumaczyć kilka rzeczy:

  • Główny plik językowy: ten plik znajduje się w bieżącym pniu w źródle: /trunk/config/locales.
  • Plik językowy paska narzędzi wiki: ten plik znajduje się w źródle: trunk/public/javascripts/jstoolbar/lang
  • 4 załączone pliki pomocy: wszystkie te pliki znajdują się w źródle: trunk/public/help/ w podkatalogu nazwanym według podtagu językowego

Na przykład, jeśli chcesz przetłumaczyć aplikację Redmine na język fiński (podtag językowy definiuje język jako "fi"), powinieneś postępować zgodnie z poniższymi krokami:


Kroki

  • Krok 1: Skopiuj i wklej /config/locales/en.yml do /config/locales/fi.yml
  • Krok 2: Skopiuj i wklej /public/javascripts/jstoolbar/lang/jstoolbar-en.js do /public/javascripts/jstoolbar/lang/jstoolbar-fi.js
  • Krok 3: Skopiuj i wklej /public/help/en/* do /public/help/fi/*.
  • Krok 4: Zmień klucz general_lang_name na pełną nazwę nowego języka w fi.yml (w tym przypadku: general_lang_name: Finnish)
  • Krok 5: Następnie wyczyść pamięć podręczną aplikacji. Spowoduje to, że nowy język (fiński) będzie dostępny w oprogramowaniu Redmine (na przykład, rake tmp:cache:clear)

Po wykonaniu powyższych kroków przejdź do następujących:

  • Krok 6: Przetłumacz każdy ciąg w plikach jstoolbar-fi.js i fi.yml oraz przetłumacz zawartość 4 plików pomocy (wiki_syntax_markdown.html, wiki_syntax_textile.html, wiki_syntax_detailed_markdown.html i wiki_syntax_detailed_textile.html)
  • Krok 7: Użyj zadań rake (które zostały opisane poniżej), aby przetestować swoje tłumaczenie. Musisz naprawić wszelkie błędy (jeśli takie otrzymasz) związane z lokalami.
  • Krok 8: Prześlij swoje tłumaczenie w formie łaty lub pliku zwykłego (wymagane będzie logowanie). Z listy kategorii wybierz "Tłumaczenie".
  • Krok 9: Najważniejsze, ciesz się swoją pracą tłumaczeniową!


Zadania rake test:

  • Jeśli używasz wersji Ruby 1.9 lub wyższej:

rake locales:check_parsing_by_psych

  • Na wszystkich wersjach Ruby:

rake locales:check_interpolation

  • Cały test (to jest opcjonalne): rake test

Pamiętaj, że "rake test" zajmuje dość długi czas i automatycznie uruchamia się na serwerze CI (Continuous Integration).


Ograniczenia

Zwróć uwagę, że istnieją pewne ograniczenia:

  • Wszystkie pliki muszą być kodowane w formacie UTF-8 (8-bitowy Unicode Transformation Format). W przetłumaczonych ciągach nie używaj encji HTML (Hypertext Markup Language).
  • Upewnij się, że twoje pliki nie zawierają znacznika kolejności bajtów (BOM). Możesz usunąć znacznik kolejności bajtów za pomocą tej komendy: awk '{if(NR==1)sub(/^\xef\xbb\xbf/, "");print}' < oldfile > newfile
  • Wysyłaj tylko aktualizacje oparte na nowych plikach tłumaczenia (aktualizacje te znajdziesz w /config/locales)


Aktualizacje plików językowych

Plik "en.yml" działa jako główny plik językowy. Uruchamiając rake locales:update, możesz sprawdzić, czy zawiera nowe ciągi. Ta komenda kopiuje nowe ciągi do innych plików tłumaczenia (domyślną wartością jest tłumaczenie angielskie).

Podczas tłumaczenia w Redmine możesz również włączyć wtyczki stron trzecich, aby obsługiwały tłumaczenia, które zawierają terminy dostosowywane.


Dostosowywanie terminologii w tłumaczeniach w Redmine

  • Ustaw istniejący katalog na config/overrides/<locale> wtyczki
  • Skopiuj aktualny plik 000.yml do ./XXX.yml. Tutaj „XXX” to trzycyfrowy numer, który określa priorytet Twoich definicji: Im wyższy numer, tym wyższy priorytet. Najlepiej unikać tworzenia pliku 999.yml. Pozwoli to na pozostawienie więcej miejsca na dodatkowe nadpisywanie.
  • Filtruj te konkretne definicje, których nie chcesz modyfikować. W ten sposób plik o niższym priorytecie będzie mógł zastosować swoje modyfikacje do elementów, których nie chcesz ruszać.
  • Na pozostałych terminach zastosuj swoje własne definicje


Wsparcie dla terminów, które można dostosować w Twojej wtyczce

  • Jak zwykle, dostarcz pliki tłumaczeń w config/locales, aby poprawnie działało, gdy nie zainstalowano wtyczki. Jeśli tego nie zrobisz, powinieneś jawnie wymagać tej wtyczki w init.rb. Jeśli szukasz dalszych informacji, sprawdź dokumentację Redmine
  • Skopiuj swoje lokalizacje do config/locales
  • Dla każdego wymienionego terminu, który można nadpisać w pliku 000.yml, zmień tłumaczenia, aby zastosować interpolację. Na przykład, gdy drukujesz problem, powinieneś zamienić słowo na %{issue}. Ponadto, gdy drukujesz problemy, powinieneś zamienić słowo na %{issue_or_issues}.
  • Możesz obsługiwać większą liczbę terminów, które można nadpisać w Twojej wtyczce. Jednak jeśli używasz jej również w podstawowym Redmine, musisz dodać zdefiniowane interpolacje dla terminologii Redmine.

Jako przykład, możesz obsługiwać nową terminologię %{my_term} w swoich lokalizacjach. Jeśli tłumaczenie jest również używane w terminologii Redmine, należy je dołączyć do swoich lokalizacji z poprawną zamianą %{my_term}, aby zapewnić spójność w tłumaczeniu.

Wypróbuj Easy Redmine przez 30 dni za darmo

Pełne funkcje, zabezpieczenie SSL, codzienne kopie zapasowe, dostępne w Twojej lokalizacji