amrok
PHP i18n Почему примеры установки локали на PHP на русских сайтах даны для голландии? Я, конечно, предполагаю, почему, но всё же…
KpoxaPy
developing i18n Раньше (до того как я столкнулся с действительно большой системой) меня коробило от способа перевода через tr('English caption there'). Нужно надписям назначать метки, однозначно! Но сейчас вижу, во что это может выродиться. Как же я задолбался искать по базам метки вида 9016512! Особенно весело такие метки сводить из двух параллельных веток.
XAR
i18n webdev ? Посоветуйте, пожалуйста, как по-хорошему делать мультиязычные интерфейсы (конкретно — сайты)? Может, где-то есть дока или даже какой-то более-менее общепринятый стандарт де-факто?
wwarlock
l10n cognos i18n locale В копилку смешного перевода из Cognos: "Уровни диапазонов" и "Уровни точек" в картографии.
"Region layers" и "Point layers" соответственно.
В моём представлении это должны быть: "Слои регионов (областей)" и "Слои точек (городов)".
XAR
coding Django i18n Upd. к #1212851: Вопрос снят. Оказывается, всё уже встроено в Джанго. Быстро настраивается, неплохое соотношение гибкости/производительности. Редактировать, по итогу, надо только темплейты и файлы языков. Только ещё дополнительно пакет localeurl поставил, чтобы выбор языка не на куках основывался, а на урле.
XAR
coding Django i18n ? Хочу в проекте на Джанго сделать интернационализацию интерфейса.
Как я себе это представляю: есть некий многоуровневый словарь, где поязыково хранятся фразы, которые должны быть на странице.
Как это принято делать? Так, чтобы было более-менее гибко, ненапряжно в плане ресурсов и не захламляло код.
Буду ОЧЕНЬ благодарен за любую помощь!
proton
sfGuardPlugin symfony i18n ? Поставил sfGuardPlugin, всё ок, вот только страничка логина английская, никто не знает, как русифицировать?
В settings.yml фронтенда:
all:
.settings:
charset: utf-8
i18n: true
default_culture: ru_RU
standard_helpers: [Partial, Cache, I18N]
Что не так?
gelin
i18n программирование идея Реквестирую такую либу...
На входе — слово, полученное от сторонних сервисов или введенное пользователем. Например, "Омск" или "Omsk" (перевода я пока не прошу).
На выходе — это же слово, но в нужной форме. Например, "в Омске" или "in Omsk".
Причем программист (пользователь либы) не должен заморачиваться грамматическими категориями, что тут нужен предложный падеж с предлогом "в". Ибо в разных языках падежи и предлоги разные. Программист должен указывать желаемый результат в виде: "форма данного слова для обозначения того, что действие происходит в данном месте".
iorlas
вечное FOSS i18n tg2 tw2 Я сегодня уж слишком мало поработал. Нет, не поработал — сделал. Однако я пообещал что пойду спать когда доделаю валидацию через tw2, буду понимать как она работает, как с ней работать и как дальше остальное делать. Не смотря на все грабли, проблемы etc, я доволен tw2. Это всяко лучше форм от верстальщика с костылями для валидатинга из jquery на клиентской стороне + formencode на серверной. Однако, я пока тестил валидейтинг только на одном поле, что же будет дальше? Узнаю завтра на живом примере.
Без сомнения, как только я разделаюсь с 2мя последними проектами, я не мало кода добавлю в tw2, repoze.what, а может даже немного и в mongokit, pylons. Но, конечно, ярче всех будет один проект, которым я занимаюсь с одним знаменитым в узких кругах человеком. Если повезёт, то мы сделаем скачок выше RubyOnRails.
Хочется отметить, что попадая в такие передряги с софтом и библиотеками на пайтоне, ты осознаешь что это гораздо приятнее чем то, с чем приходится сталкиваться на cpp или каком-либо ином языке. А сталкиваться на других языках приходится чаще.
iorlas
FOSS RAGE i18n tw2 А теперь о том, зачем я поставил TG2 и пытался запустить "хеллоу ворлд" на нём.
Есть такой офигенный фреймворк для вормоклепания — ToscaWidgets. Его давно многие питонисты юзают. Всё круто, всё супер. Однако, сейчас уже вышел TW2 и нужно переходить на него. Чем я и занимался.
Сколько фишек! Сколько ворможностей! Как всё стало проще и красивее! Однако документация лучше не стала. Старались лучше, да, но количество документации TW1 перекрывает качество TW2.
В документации к TW2 идёт 2 примера: на собственном веб-сервере для тестинга TW2(просто класс, да пара хуков на пастере) и на TG2.
На самом деле, ни один из этих примеров не раскрывает секретов разработки с использованием TW2. По сути, эти примеры являются вызовом метода run_hello_world_program. toscawidgets.org
Да-да, всё в этом: tw2.forms.FormPage
Дело в том, что Page(FormPage — потомок) генерирует свою страницу, свои хуки, само всем управляет. Оно получает запрос от wsgi, а затем возвращает ответ webob. Т.е. может работать одно, без "людей". Но зачем оно мне? Как вставить свой хтмл-код? Как юзать свои темплейты? В общем, целый набор классов для песочниц, а вся документация — вокруг них. Это что, намёк на то, что TW2 только для песочниц? Бред. Вообще, из этого можно было бы сделать очень удобную штуку, но... Потом займусь.
Чтобы заставить это всё работать без заветного класса-страницы, пришлось опуститься ниже, погуглить, да и много вообще потратить времени. Вообще, оно очень не очевидно, что всё дело, в т.ч. валидация и обработка запросов, производится в классе страницы.
В любом случае, вот такой кусок кода есть в TW2, в классе страницы: pastie.org
После этого всё становится очевидным. Очень очевидным. И, конечно, можно без труда всё сделать.
Но подождите, это не конец поста! i18n ещё не полностью душу выбил из меня, ему захотелось ещё! Суть в чём: создавая форму на TW2, ты создаёшь класс. Класс создаётся во время старта приложения. Уже начинаете понимать к чему оно?
user_type = twf.RadioButtonList(options=[_('Seller'), _('Customer')], label=None, css_class='widgetList')
К.О.: Seller и Customer всегда будут таковыми, они не будут меняться с выбором языка пользователя. Они будут всегда на одном языке. Почему? Потому что поле класса формы создаётся во время запуска приложения, когда выбран один язык.
Решение есть одно — генерация формы по запросу, т.е. обернуть в функцию, в которой описывается форма. Соответственно, форма будет каждый раз генериться заново при вызове функции, а затем возвращать её. В общем, вот такие вот пироги:
pastie.org
А вот обработка: pastie.org
JollyRoger
Qt cmake i18n Сирці пакету підтримки QT4 показали, що .qm файли будуть в CMAKE_CURRENT_BINARY_DIR, разом з усіма згенерованими файлами, зокрема, .moc, ui_*.h і власне бінарниками. Проте щойно вказати EXECUTABLE_OUTPUT_PATH, як бінарі перемістяться в нього, а .qm-файли лишаться на місці. Ну і як з ним по-людськи працювати?
gelin
web работа i18n Если вы локализуете/интернационализируете веб-приложение, не забудьте предусмотреть локализацию не только view, выдаваемого пользователю, но и "делокализацию" введенных пользователем значений. Особенно это касается вещественных чисел. Американцы, к примеру, ставят запятую как разделитель тысяч. А франзуцы и русские ставят запятую как разделитель дробной части числа. Русские программисты могут поставить и точку. Вот и поди пойми.

Интересно, существуют ли какие-либо веб-фреймворки, предполагающие еще и этап обработки параметров, присланных пользователем? Мне такие неизвестны :(
rb
жизнь общественная_деятельность безработица i18n Ruby День сто двадцать седьмой (напряжение в электрической сети США — 127 вольт).

Весь день проработал над не анонсированным проектом. Я уже забыл как программировать целыми днями. Только выполнил одну задачу, как вылезает другая, которая тянет за собой третью. Только разобрался и уже спать пора! Научился пользоваться реализацией I18n под Ruby (и его дополнением Russian). До этого сам костыли городил, а сейчас интернационализация выпрыгивает из коробки.

Очнулся от программирования в 3 часа ночи. Меня хватило только на то, чтобы досмотреть серию s01e06 сериала "Звездные врата: Вселенная" (Stargates: Universe). Работу искать не стал, так как надоело. За последнее время никто так и не пригласил на собеседование… буду тратить время не на поиски работы, а на программирование =)