2013-04-22 20 views
6

Zamierzam zbudować projekt Silex/Symfony2 i szukałem metody generowania plików tłumaczeniowych XLIFF/PO/YAML na podstawie tekstów do przetłumaczenia w projekcie, ale nie znalazłem żadnych instrukcji ani dokumentacji na ten temat .Jak wygenerować plik tłumaczenia (.po, .xliff, .yml, ...) z projektu Symfony2/Silex?

Moje pytanie brzmi: Czy istnieje automatyczny sposób generowania pliku (-ów) tłumaczenia w określonym formacie dla projektu Symfony2/Silex?

Jeśli tak, proszę powiedzieć, jak wygenerować plik, a następnie zaktualizować tłumaczenie po tym.

Jeśli nie, proszę powiedzieć, jak utworzyć plik (y) tłumaczenia, a następnie dodać więcej tekstu do mojego projektu? Szukam pulpitu edytora lub opartego na Internecie zamiast zwykłego edytora, takiego jak Transifex, GetLocalization (ale nie ma opcji utworzenia nowego pliku lub dodania więcej tekstu)

Odpowiedz

5

widzę znalazłeś konwertera, ale aby odpowiedzieć na pierwsze pytanie o generowanie plik początkowy Tłumaczeń -

Jeśli masz Gettext zainstalowane w systemie ty może wygenerować plik PO z twoich "tekstów, które będą trwać" w projekcie ". Program wiersza poleceń xgettext skanuje pliki źródłowe w poszukiwaniu jakiejkolwiek funkcji, której używasz.

Przykład:
Aby skanować pliki PHP dla instancji wezwanie trans metoda as shown here można użyć następującego polecenia -

find . -name "*.php" | xargs xgettext --language=PHP --keyword=trans --output=messages.pot 

do Twojego pytania o redakcji:
można użyć dowolnego edytora PO, takie jako POEdit, aby zarządzać twoimi tłumaczeniami, ale jak mówisz, w końcu musisz przekonwertować plik PO na pakiet językowy XLIFF lub YAML dla Symfony.

Widzę, że znalazłeś narzędzie konwertera. Możesz także spróbować tego, który napisałem dla Loco. Obsługuje PO to YAML i PO to XLIFF

+0

Myślę, że nie można obsłużyć składni mnogości symfony z xgettext. – steven

+0

To prawda. Ograniczona składnia liczby mnogiej Gettext nie jest zgodna z bardziej ekspresyjną składnią Symfony. Będziesz musiał osadzić specjalną składnię w rzeczywistych ciągach. Chociaż dotyczy to dowolnego formatu używanego w Symfony, w tym zalecanego formatu XLIFF – Tim

1

Obejście dla zapracowanych ludzi (UNIX)

można uruchomić następujące polecenie w terminalu:

$ grep -rEo --no-filename "'.+'\|\btrans\b" templates/ > output.txt 

ta wyświetli listę komunikatów do przetłumaczenia:

'Please provide your email'|trans 
'Phone'|trans 
'Please provide your phone number'|trans 
... 

Mam na myśli prawie .. Ale zazwyczaj możesz zrobić z niego trochę pracy re ...

Oczywiście należy dostosować polecenie do własnych upodobań (transchoice, podwójne cudzysłowy zamiast pojedynczych ...).

Nie jest idealny, ale może pomóc!

grep opcje

  • grep -R, -r, --recursive: Przeczytaj wszystkie pliki pod każdym katalogiem, rekurencyjnie jest to równoznaczne z opcją recurse -d.
  • grep -E, --extended-regexp: Interpretować PATTERN jako rozszerzone wyrażenie regularne.
  • grep -o, --only-matching: Pokaż tylko część pasującej linii, która pasuje do PATTERN.
  • grep -h, --no-filename: Ukryj prefiksy nazw plików na wyjściu, gdy przeszukiwanych jest wiele plików.

(source)