2010-02-10 13 views
7

Czy ktoś ma jakieś sugestie, jak korzystać z internacjonalizacji w silniku aplikacji/webapp/python. Widziałem kilka postów dotyczących re - django - obsługa tłumaczeń, ale wydaje mi się, że nie znalazłem wystarczających informacji, jak to zrobić.Potrzebna jest pomoc dotycząca umiędzynarodowienia aplikacji Google App Engine (Python)

Co potrzebne jest rozwiązanie, w którym

  1. przeglądarka może wykryć język
  2. użytkownik może zmienić i ustawić
  3. sznurki w szablonach i od kodu mogą być zlokalizowane
  4. łatwą edycję plików dla wsparcia językowego .

Jestem nowy app engine więc trzeba niektóre łatwe do naśladowania/zrozumieć pomoc wskazówki/kodu

wiele niż

+0

Prawdopodobnie mylicie lokalizację z internacjonalizacją, co powoduje, że wyszukiwanie jest nieco trudniejsze (chcecie szukać internacjonalizacji). Przeczytaj artykuł z wyjaśnieniem różnicy: http://www.w3.org/International/questions/qa-i18n –

+0

Ah - doh! Przepraszam, wiem, co mam na myśli - długa nić programowania spowodowała, że ​​mózg nie żyje - odtworzę to. Wielkie dzięki za to, że wyglądasz głupio. Opublikuję link do nowego postu, jeśli ktoś będzie zainteresowany. – spidee

+0

Powinieneś właśnie edytować to pytanie, a nie tworzyć nowe. –

Odpowiedz

2

Istnieje kilka opcji do rozważenia.

  • Standardowy tekst(). Zobacz przykład kodu z this. Kod jest nieaktualny: istnieje standardowy sposób zarządzania plikami cookie i sesjami, więc należy go przepisać na prawdziwe użycie.

Niekiedy ta metoda nie działa, patrz this issue. Zwykle jest to rozwiązane przez ponowne załadowanie aplikacji, ale to dziwne.

  • Użyj babel. Jest to czysty python, więc można go łatwo zintegrować. Wadą jest zewnętrzna zależność, ale jest mała i dobrze działa. Here jest odpowiedzią z objaśnieniami.

  • Nie rób l10n ani i18n w kodzie. Moją wizją jest to, że GAE powinien być usługą backendu, obsługującą html tylko sporadycznie.

Niedawno zrobiłem projekt wymagający interfejsu WWW w kilku językach. Tym razem wygenerowałem zestaw szablonów we wszystkich językach wymaganych przez stworzenie szablonu "wzorcowego" przy użyciu _() i gettext() (moduł python, a nie znaczników django), wyodrębnianie ciągów i iterowanie po językach. Prosty program ładujący szablon sprawdza bieżący język i ładuje odpowiedni szablon. Pomysł jest bezwstydnie skradziony z p. 1.