Cách dịch Redmine śpiewał bất kỳn ngữ nào

10/13/2023
5 minut
Łukasz Beňa.

Một trong những tính năng tuyệt vời cua Redmine là ban có thể du dàng dịch ứng dụng quản lý dự án này sang bất kỳ ngôn ngữ nào ban muốn.

Zastrzeżenie: Informacje zawarte w tym artykule dotyczą tylko Redmine i nie dotyczą Easy Redmine.

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

  • Podstawowy plik lang: ten plik znajduje się w bieżącym magistrali w źródle: / trunk / config / locales.
  • Plik lang paska narzędzi wiki: ten plik znajduje się w źródle: trunk / public / javascripts / jstoolbar / lang
  • 4 dołączone pliki pomocy: Wszystkie te pliki znajdują się w źródle: trunk / public / help / w podkatalogu nazwanym na podstawie podtagu języka

Przykładowo, powiedzmy, że chciałbyś przetłumaczyć aplikację Redmine na język fiński (w rejestrze podtagów języka zdefiniowano język jako „fi”). Aby to zrobić, wykonaj następujące czynności:


Cel

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

Po wykonaniu wyżej wymienionych kroków, wykonaj następujące czynności:

  • 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_syntax_detailed_textile.html)
  • Krok 7: Skorzystaj z zadań prowizji (zostały one szczegółowo opisane poniżej), aby przetestować swoje tłumaczenie. Musisz naprawić wszelkie błędy (jeśli wystąpią) związane z lokalizacjami.
  • Krok 8: Prześlij tłumaczenie w postaci łatki lub zwykłego pliku (wymagane będzie zalogowanie się). Z listy kategorii wybierz „Tłumaczenie”.
  • Krok 9: Na koniec, co najważniejsze, życzymy udanej pracy tłumaczeniowej!


Testowe zadania rake:

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

ustawienia prowizji rake: check_parsing_by_psych

  • We wszystkich wersjach Ruby:

ustawienia prowizji rake: check_interpolation

  • Cały test (jest opcjonalny): test prowizji

Pamiętaj, że „test prowizji” zajmuje dość dużo czasu i automatycznie działa na serwerze CI (Continuous Integration).


Obowiązujące ograniczenia

Pamiętaj, że istnieją pewne ograniczenia

  • Wszystkie pliki muszą być zakodowane w 8-bitowym formacie transformacji Unicode (UTF-8). W przetłumaczonych napisach nie używaj jednostek HTML (Hypertext Markup Language).
  • Upewnij się, że pliki nie mają oznaczenia kolejności bajtów (BOM). Możesz usunąć znacznik kolejności bajtów za pomocą tego polecenia: awk '{if (NR == 1) sub (/ ^ \ xef \ xbb \ xbf /, ""); print}' <oldfile> newfile
  • Aktualizacje należy przesyłać wyłącznie w oparciu o nowe pliki tłumaczeń (można je znaleźć w katalogu / config / locales)


Aktualizacje plików językowych

Plik „en.yml” działa jako plik języka podstawowego. Uruchamiając rake locales: update, możesz sprawdzić, czy zawiera nowe ciągi. To polecenie kopiuje wszystkie nowe ciągi do innych plików tłumaczeń (domyślną wartością jest tłumaczenie angielskie).

W tłumaczeniu w Redmine możesz również włączyć wtyczki innych firm do obsługi tłumaczeń zawierających warunki, które można dostosowywać.


Dostosowywanie terminologii w odniesieniu do tłumaczeń w Redmine

  • Ustaw istniejący katalog na config / overrides / w ramach wtyczki
  • Skopiuj i wklej bieżący 000.yml do ./XXX.yml. Tutaj „XXX” to trzycyfrowa liczba określająca priorytet definicji: wyższy numer, wyższy priorytet. Najlepiej unikać tworzenia 999.yml. Pozwoli ci to zostawić więcej miejsca na dodatkowe przesłonięcia.
  • Odfiltruj te szczegółowe 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, z którymi nie chcesz się wtrącać.
  • W pozostałych terminach zastosuj własne definicje


Warunki pomocnicze, które można dostosowywać we wtyczce

  • Jak zwykle podaj pliki tłumaczeń w config / locales, aby działały poprawnie, gdy nie zainstalowałeś wtyczki. Jeśli nie, powinieneś jawnie wymagać tej wtyczki w pliku init.rb. Jeśli szukasz dalszych informacji, sprawdź dokumentację Redmine
  • Kopiuj, wklej swoje lokalizacje w config / locales
  • Dla każdego wymienionego terminu, który można zastąpić w 000.yml, zmień tłumaczenia, aby zastosować interpolację. Na przykład, kiedy drukujesz problem, powinieneś zamienić słowo na% {problem}. Ponadto, kiedy drukujesz problemy, powinieneś zamienić słowo na% {issue_or_issues}.
  • W Twojej wtyczce możesz obsługiwać większą liczbę nadrzędnych warunków. Jeśli jednak używasz go również w bazie Redmine, dodajesz interpolowane definicje terminologii Redmine.

Dla przypomnienia, możesz obsługiwać nową terminologię% {my_term} w swoich komunikatach. Jeśli tłumaczenie jest również używane w terminach Redmine, dołączycie je do swoich wiadomości z poprawnym zastąpieniem% {my_term}, aby zapewnić spójność tłumaczenia.

Thử Easy Redmine trong thời gian dung thử 30 ngày miễn Phí

Đầy đủ tính năng, bảo vệ bằng SSL, sao lưu hàng ngày, tại vị trí địa lý cua bạn