2013-09-03 13 views
5

Zajmuję się tworzeniem Serwera API w Go, a serwer (w tej chwili) obsługuje wszystkie tłumaczenia dla klientów. Gdy klient API pobiera określone dane, prosi również o tłumaczenia, które są dostępne dla danej sekcji.Wyjście wszystkie łańcuchy językowe w Revel?

Idealnie chcę mieć następującą strukturę folderu:

/messages 
    /home.en 
    /home.fr 
    /home.sv 
    /news.en 
    /news.fr 
    /news.sv 

Gdzie news i home są różne moduły.

Teraz pytanie, które mam do Revela, czy możliwe jest pobranie WSZYSTKICH ciągów językowych dla danego modułu i danej lokalizacji? Na przykład, przeciągnij wszystkie ciągi domowe dla en-US.

EDIT:

chciałbym wyjście (coś mogę powrócić do klienta) Kluczową: ciąg wartości tłumaczeń.

Wszelkie wskazówki będą mile widziane.

+0

przechowujesz wszystkie en-US, en-UK, en-AU itd. W folderach 'home.en' lub' news.en'? Czy będą one podzielone na foldery takie jak 'home.en-US' i' home.en-UK'? Po prostu próbuję ustalić, czy możesz po prostu otworzyć wszystkie pliki z 'fmt.Sprintf ("/messages /% s.% S ", moduł, ustawienia narodowe)'. – Intermernet

+0

Cóż, na podstawie sugestii Revela każda lokalizacja ma inną sekcję w obrębie tego samego pliku. Obecnie nie przewiduję zbyt wielu różnic, takich jak "kod pocztowy" a "kod pocztowy". Nie mogę więc wymagać osobnego pliku dla lokalizacji. Jeśli to odpowiada. – Peter

Odpowiedz

3

Wydaje mi się, że rozkosz korzysta z translacji opartej na wiadomościach (tak jak robi to gettext), więc do otrzymania tłumaczenia potrzebny jest oryginalny ciąg znaków: . Te ciągi są przechowywane w obiektach Config, , które same są przechowywane w messages z i18n.go, posortowane według języka.

Jak widać, to mapowanie nie zostało wyeksportowane, więc nie można uzyskać do niego dostępu. Najlepszym sposobem, aby to naprawić, jest napisanie funkcji, której potrzebujesz (pobranie konfiguracji przez podanie języka). lub eksportowanie jednej z istniejących funkcji i utworzenie żądania ściągnięcia dla schema.

Można obejść ten kopiując kod loadMessageFile lub rozwidlone wersję Revel i eksportu loadMessageFile lub parseMessagesFile. Jest to również świetna okazja, aby utworzyć żądanie ściągnięcia.

Należy pamiętać, że lokalizacje są przechowywane w formacie pliku INI analizowanym przez robfig/config, , więc ręczne parsowanie jest również opcjonalną opcją (choć nie jest to zalecane).