2012-03-26 25 views
5

W moim projekcie chciałbym mieć kontrole czasu kompilacji mojego istniejącego pakunku zasobów. Mam już zestaw zlokalizowanych plików *.properties i mam zamiar podłączyć je do jakiegoś narzędzia i18n. Myślałem o zwykłym ResourceBundles, ale nie podoba mi się to, że ten mechanizm nie gwarantuje żadnego rodzaju kontroli, ani kontroli kompilacji, ani konserwacji, takich jak znalezienie duplikatów lub znalezienie nieużywanych kluczy.Dowolna biblioteka do generowania czystego kodu z pakietów zasobów i18n?

Tak, Szukam biblioteki, która zabrałaby moje istniejące pliki *.properties i przekonwertowała je na czysty i czysty kod Java, który mógłbym wykorzystać w moim projekcie.

Najlepszym możliwym wynikiem byłoby posiadanie mechanizmu podobnego do wsparcia GWT i18n. Jeden, czysty interfejs z wszystkimi wiadomościami jako osobnymi metodami.

Przyjrzałem się jlibs i ForgeRock. Naprawdę lubię jlibs, ale nie jest to oddzielna lib, więc trudno mi sobie wyobrazić wprowadzenie tak dużej zależności od lib dla i18n. ForgeRock robi prawie to, co chciałbym, ale produkuje stałe zamiast czystych interfejsów do pracy, jak robi to jlibs.

This entry blog jest również pomocny w zrozumieniu, które podejście chciałbym zastosować. Zrobiłem duże badania dotyczące dostępnych narzędzi i18n, po prostu nie mogę znaleźć "tego", który najlepiej odpowiada moim potrzebom.

Pozdrawiam.

Odpowiedz

0

Obecnie pracuję dokładnie nad biblioteką, której szukasz, check it out. Nadal trwają prace, ale niedługo powinienem mieć pierwsze wydanie.

Pierwsza wersja będzie zawierała obsługę tłumaczeń opartych na adnotacjach. Jednak nie mam jeszcze pomysłów na migrację istniejących projektów do stylu c10n. Wszelkie pomysły, sugestie są zawsze mile widziane!

+0

Wygląda obiecująco, ale jak jest stabilny? Jaka jest licencja? Wybrane przeze mnie narzędzie zostanie użyte w produkcie komercyjnym. –

+0

Licencja to Apache License 2.0, więc nie ma problemu z komercyjnym wykorzystaniem. Obawiam się, że właśnie zacząłem go rozwijać, więc jest teraz na etapie * alpha *. Obecnie nie ma dostępnej stabilnej wersji.Planowałem wydać pierwszą stabilną wersję za mniej więcej miesiąc, ale jeśli mam chętnych użytkowników, mogę trochę pośpieszyć :) – rodion

+0

Mogę trochę pomóc w wolnym czasie, jeśli będziesz pilnować rzeczy do zrobienia. Mogę się trochę pobawić, aby przekazać ci opinie z perspektywy użytkownika i pomóc w niektórych zadaniach programistycznych. –

-1

Lubię JUnit. Nie dokładnie to, czego szukasz, ale tworząc testy masz pewność, że wszystkie elementy w plikach własności są dostępne.

1

Inną biblioteką spełniającą wymagania dotyczące generowania kodu będzie i18n-binder.

Osobiście podchodzę do tego problemu z innej perspektywy, korzystając z frameworka gettext, możesz oznaczyć możliwe do przetłumaczenia ciągi w kodzie źródłowym i wygenerować z nich pakiety zasobów. Istnieją narzędzia i edytory, które mogą następnie aktualizować tłumaczenia na podstawie wyodrębnionych ciągów i wykrywać nieużywane lub modyfikowane ciągi.

0

Aby rozwiązać ten problem, zaimplementowałem Message Compiler, który tworzy pliki pakunku zasobów i stałe definicje jako wyliczenie Java dla kluczy z jednego pliku źródłowego. Stałe mogą być używane w kodzie źródłowym Java, co jest znacznie bezpieczniejszym sposobem. Kompilator wiadomości może być używany nie tylko w Javie. Tworzy również pliki zasobów i stałe dla Objective-C lub Swift i może być rozszerzony na inne środowiska programistyczne.

Powiązane problemy