Mam następujące zdanie muszę zlokalizować:Clean wzór do lokalizowania zdań w Rails i18n
masz U nieprzeczytane wiadomości/S i N nowa wiadomość/s
Przykład lokalizacji
U 0 N 1
"masz 1 nową wiadomość"
U 1 N 1
"masz 1 nieprzeczytanych wiadomości i 1 nowa wiadomość"
U 1 N 0
"masz 1 nieprzeczytanych wiadomości"
U 2 N 0
"masz 1 nieprzeczytane wiadomości"
Mogę łatwo zacząć z tym bałaganem
unread_only:
one: you have 1 unread message
other: you have {{count}} unread messages
new_only:
one: you have 1 new message
other: you have {{count}} new messages
... w tym momencie siedzę
# how do I pass two counts in?
new_and_unread:
Jestem świadomy i18n w Rails nie jest ICU MessageFormat jednak, czy istnieje jakiś rozsądny sposób lokalizowania tego z narzędziami mamy? Czy potrafisz przekazać 2 liczniki do przełącznika lokalizacji?
Nie sądzę, wiele ram sobie z tym poradzić, ponieważ wybucha; Podejrzewam, że szyny nie są wyjątkiem. Wyobraź sobie lokalizację w Arabaic, gdzie potrzebujesz 36 zlokalizowanych ciągów w twoim przykładzie, co jest prawie niewykonalne. Nie dość techniczny, by odpowiedzieć, ale podejrzewam, że najlepszym sposobem byłoby przemyślenie tego ciągu nawet w języku angielskim. –
Głównym przyjętym rozwiązaniem tego problemu jest format wiadomości ICU: https://github.com/jedtoolkit/messageformat.js –
Kariera przepełnienia stosu Interfejs API i18n umożliwia tylko jedną liczbę z tego właśnie powodu. Za każdym razem potrzebowaliśmy więcej, zmieniliśmy język angielski, aby wymagał tylko jednego. – mjibson