Как сделать локализацию. Как правильно подойти к локализации. Онлайн утилиты для конвертации PO в MO

Как вы, может быть, уже слышали, Shovel Knight наконец пересёк океан и достиг Японии! Мы очень рады такому прыжку. Мы потратили много времени, чтобы локализация стала интересной и умной. Постойте, а что такое локализация? Это процесс перевода текста и адаптации игры под местный рынок. Мы сотрудничаем с отличными экспертами из 8-4, чтобы обеспечить высочайшее качество локализации. Сегодня мы хотим рассказать о самых интересных изменениях, которые мы внесли в игру, чтобы она действительно понравилась японским игрокам.

История

Но прежде чем мы начнём… проведём небольшой урок истории! Когда-то давно локализация игр была Диким Западом. Не было никаких стандартов или правил относительно того, что приемлемо при адаптации. Иногда разработчики создавали абсурдные и полные опечаток переводы. Иногда разработчики вкладывали так много усилий, что создавали совершенно новую серию игр.


Плохой перевод Bubble Bobble


Японская игра Wonder Boy, ставшая при портировании на NES/Famicom игрой Adventure Island. Игра разделилась на две независимые серии.

(Примечание: оказалось, что Wonder Boy превратилась в Adventure Island при портировании с аркадных автоматов. Мы перепутали, потому что часто портирование и локализация взаимосвязаны при переносе с Famicom на NES. Просим прощения за свою ошибку!)

Такие нестыковки внесли в локализацию игр множество интересных изменений. Разработчики с выпуском каждой игры учились тому, что же именно нужно менять. Кроме того, из-за ограничений NES при переносе игр с японского рынка требовалось много изменений. Например, возникали проблемы со сложностью шрифтов, техническими ограничениями или гейм-дизайном, и осознание этого приходило уже после выпуска игры. Мы рассмотрим только малую часть примеров изменений, внесённых в игры в то время, чтобы вы могли понять причины модификаций, сделанных нами в Shovel Knight для японского рынка.

Прежде чем вы прочитаете нашу историю, лучше послушайте специалиста, Клайда Мэнделина (Clyde Mandelyn): http://legendsoflocalization.com/. Он пишет потрясающие статьи (и книги!) о самых знаменитых локализациях игр и об изменениях, внесённых после выпуска игр в Японии.

Обычные изменения при локализации японских игр для североамериканского рынка

Очевидно, что множество мелких или крупных изменений текстов происходит при локализации в результате трудностей перевода. Но мы собираемся показать, как менялась графика, звуки и геймплей игр, которые вы могли видеть в эру NES/Famicom.

Изменения графики

Разумеется, обычно одним из самых больших изменений в игре бывает экран запуска. Иногда происходит его полная замена, иногда - просто удаление японского текста.

В те времена NES часто использовалась замена спрайтов. Часто логика заключалась в том, что игроки могли не понять специфичных для Японии спрайтов, например, еды:

Или же североамериканские локализаторы могли посчитать, что японские персонажи или спрайты не будут привлекательными. Ниже представлен пример Power Blade, также известной в Японии как Power Blazer. В ней главный персонаж сделан «крутым», а не «милым».


Известная всем в 80-х истина: любая игра продастся, если в ней есть Арнольд Шварценеггер.

Иногда эти изменения вносились, чтобы сделать геймплей более понятным:


Ого! А я и не знал, что там есть враг!

Super Mario Bros. 2 (известная как Doki Doki Panic) в Японии - это случай, когда Nintendo of America пошла на значительные изменения для локализации игры. Это отличный пример того, как в то время обычно делались модификации. Они превратили не-Марио в Марио!

В некоторых случаях разработчики решали изменить спрайты настолько, что они становились анимированными! Ниже представлен пример того, как единственное изменение сделало геймплейные объекты действительно выделяющимися:


Может быть, эти растения можно вытащить?

Спрайты могли также становиться менее или более сложными. Или их просто меняли, чтобы усовершенствовать японскую версию. Вот пример такого типа изменений из Mario 2:

Иногда анимация менялась из-за различий в производительности Famicom, NES или Famicom Disk System. Вот анимированный спрайт (на самом деле тайл фона, который кажется анимированным) из Zelda 2, который был удалён из версии для NES, потому что NES не могла работать с VRAM так же, как FDS:


Ух ты, теперь я верю, что это действительно вода!

Изменение шрифтов

В шрифты часто вносилось большое количество изменений. Создание игры на японском было сложным из-за того, что стандартный набор символов (кандзи) было почти невозможно засунуть в малый объём памяти, который могла выделить NES. Кандзи может содержать тысячи символов (в обычной газете их может быть больше 2500)! Чтобы обойти эту проблему, иногда в играх использовался меньший набор символов кана (примерно до 100 символов), или гораздо меньший набор английских символов! Английский распространён в Японии, поэтому это не делало игры абсолютно неиграбельными, как этого можно ожидать (особенно учитывая обычно небольшое количество текста в играх для NES. Вот примеры текста на кане для NES/Famicom:

Вот пример использования английского в версии Zelda для Famicom:

Заметьте разницу в шрифтах. На NES использовался стандартный шрифт 8×8, поэтому текст для североамериканского рынка изменили на привычный для игроков. Также можно заметить, что все буквы в верхнем регистре! Это наполовину уменьшало количество требуемых символов. В Shovel Knight используется тот же принцип.

В случаях, когда читаемость текста была очень важна, разработчики вкладывали больше ресурсов для создания изощрённого текста. Ниже показан пример того, как Final Fantasy для NES преодолела барьер нижнего регистра:


О, гораздо приятнее для глаз.

Можно заметить, как странно выглядит буква в «g» в слове «king». Она стала такой из-за того, что в играх для NES/Famicom есть место только для символов 8×8 пикселей. Буква «g» при правильном написании нарушает эти границы, поэтому символ просто расположили выше. Это ещё одна причина того, почему так сложно отображать кандзи на NES/Famicom. Из-за сложности каждого символа их почти невозможно отрисовать в 8×8 пикселей. Но были случаи, когда разработчикам удавалось вытянуть кандзи на NES/Famicom. Посмотрите на Faxandu:

Как видите, шрифт гораздо больше стандартного размера 8×8 из-за сложности кандзи. В Faxanadu размер увеличен вдвое: используются блоки по 16×16 пикселей (где для символов остаётся размер 14×14). На Super Famicom/SNES у разработчиков было меньше свободы, поэтому шрифты кандзи часто имели размер 12×12:

Звук

Менялась не только графика, иногда локализаторы игр меняли звуки, связанные с геймплейными объектами.

Они шли ещё дальше и изменяли даже музыкальные композиции. Иногда это происходило из-за разницы «железа» Famicom, NES и Famicom Disk System. Или, как мы говорили ранее, такое случалось из-за разницы в технологиях картриджей. Оцените различия саундтреков Castlevania 3 в разных версиях:

Геймплей

И, наконец, иногда переход с Famicom на NES затрагивал даже геймплей. Игра могла становиться легче или сложнее, из неё убирались глитчи, возникающие из-за различий в оборудовании, или разработчики просто пытались сделать игру интереснее. Вот две комнаты из Zelda, в которые авторы решили добавить летучих мышей!

Кроме того, в версии Zelda для Famicom противников Pols можно было победить звуком, но в контроллере NES не было микрофона, поэтому они побеждались стрелами:

Изменения локализации Shovel Knight

Поэтому, когда мы приступили к локализации Shovel Knight, нам хотелось воссоздать некоторые забавные различия региональных версий. Мы даже попробовали выполнить процесс «обратной» локализации. Это означало, что мы задались вопросом, как бы выглядела игра Shovel Knight, если бы сначала её выпустили в Японии. Однако у нас были правила, касавшиеся изменений:

  1. Мы хотели сохранить целостность геймплея.
  2. Нам не нужны были значительные изменения, которые бы заставили игроков жалеть о том, что они не играли в оригинальную версию.
  3. Мы не хотели делать того, что традиционно считается плохой локализацией.

Для нас это значило отсутствие опечаток или плохого английского, всего того, что могло бы снизить качество игры. Кроме того, мы не хотели менять игру слишком сильно! И, наконец, уровень локализации должен быть по современным стандартам отличным. Но нам хотелось добавить немного интересных деталей. Поэтому мы внесли небольшие правки, которые в результате стали существенными отличиями!

Изменение графики

Экран запуска, очевидно, остался тем же самым. Мы хотели соответствовать тому, что можно было ожидать от японской игры той эры, то есть японского текста вместе с английским логотипом:

После этого мы внесли изменения в статичные спрайты. На картинке ниже видно, что при повышении уровня здоровья Gastronomer иногда случайным образом может подать онигири (рисовый колобок).

Кроме того, в монете Мидаса теперь есть отверстие, что делает её похожей на некоторые японские монеты:

Изменён дизайн статуй в Зале Чемпионов.

Также мы внесли небольшие цветовые изменения. В частоности, типы палитры Wizzem и Iron Knight изменены следующим образом:

Последние изменения в статичные спрайты внесены переработкой портретов персонажей Reize, Baz, Polar Knight и The Enchantress. Мы старались сделать их художественный стиль более анимешным.

После этого мы решили, что настало время сделать некоторые статичные спрайты анимированными, чтобы они показали всю мощь Famicom! Во-первых, мы решили анимировать траву в эпизоде Plains:

Для дракончиков (зелёных и синих) мы сначала создали спрайты с множеством кадров анимации их полёта, но решили урезать их, потому что они не походили на спрайты с NES. Но мы вернули анимацию в японской версии!

Мы сменили дизайн фонтана в деревне и анимировали его потоками воды.

И последнее изменение графики: спящий возле костра Shovel Knight выдувает носом пузыри.

Изменение шрифтов

Для шрифта нужно было хитрое решение. Мы хотели использовать символы каны, потому что они больше характерны для эры и ограничений NES. С другой стороны, большинство японских игроков охотнее играло бы в игру на кандзи. Кандзи можно считать ностальгическим возвращением к ретро-стилю, к тому же, она широко использовалась на Super Famicom. Однако кандзи потребовала бы переделки всех текстовых полей в игре, потому что мы создавали меню, диалоговые окна и т.д. под символы шрифтов 8×8. Поэтому, очевидно простейшим путём было бы использование каны. И после долгого обдумывания… мы решили сделать оба шрифта!

Игра официально была переведена на оба алфавита и поддерживала переключение между ними на лету:

Как вы видите, мы выбрали для шрифта кандзи размер 12×12 пикселей. Это позволило нам приблизиться к шрифтам на Super Famicom.

Заметьте также, что мы оставили текст интерфейса английским. Мы подумали, что в то время было обычным использовать в интерфейсе английский язык, поэтому решили придерживаться его:

Изменение звуков

Здесь мы поменяли не так много. Мы уже пошли дорогой Famicom в отношении музыки и добавили чип VR6. Поэтому мы решили изменить всего несколько звуков:

  • Звуки смерти Gryphon и смерти Bubble Dragon поменялись местами.
  • Огонь Wizard (и огненный жезл Shovel Knight’а) использует звук огня, а не магии.
  • Когда феи кусают персонажа, проигрываются другие звуки.

Дополнительные чит-коды!

Но на этом мы не остановились! Мы решили добавить ещё немного деталей. Помните чит-код X&BUTT? (Прим. пер.: он заменяет некоторые слова в диалогах на Butt, т.е. «задница».) К сожалению, «задница» - это не самое смешное слово в Японии, так что мы придумали другую схему замены. Вместе с заменой текста чит-код также включает две графические замены, которые в основной игре нам показались перебором.

Морковь заменяется на японскую редьку дайкон:

Золотые монеты становятся вертикальными и больше напоминающими монеты кобан.

К тому же мы сделали так, что этот специальный японский чит включает изменения локализации во всех языках. Но если вы не хотите использовать чит-код, то можете в любой момент переключиться на японский язык, чтобы увидеть все изменения.

Спасибо

Надеемся, вам понравился этот короткий экскурс в историю нашей японской локализации. Перевод игры - это трудная работа, и мы надеемся, что как можно больше людей увидят, сколько любви вкладывается в выпуск каждой игры. Вам стоит попробовать сыиграть, когда изменения для японского рынка выйдут в свет!

В первой части серии статей о WordPress плагинах i18n and l10n мы рассказали о том, .
Вторая (и заключительная) часть представляет собой руководство к действиям по подготовке плагина к переводу, подобное тому, как было с локализацией и переводом плагина на новый язык.

Процесс подготовки плагина к переводу довольно прямолинеен. Во-первых, вам необходимо сгенерировать .pot файл. Этот файл используется для осуществления локализации. .pot -файл содержит оригинальные строчки текста (на английском языке ) вашего плагина.

Вот пример содержимого файла .pot -файла:

#: plugin-name.php:123 msgid "Welcome to SitePoint" msgstr ""

Переводчик, найдя вхождение строки Welcome to SitePoint (в строке 123 вашего плагина ) на немецком языке, добавит его в файл:

#: plugin-name.php:123 msgid "Welcome to SitePoint" msgstr "Willkommen auf SitePoint"

Генерация POT файла

Как упоминалось ранее, POT -файл необходим для осуществления локализации программой – переводчиком.
Обратите внимание: перед генерацией POT -файла, убедитесь, что вы .

Есть два варианта генерации POT – файла вашего плагина.

Репозиторий плагинов для администраторов

На странице официального репозитория плагинов WordPress есть утилита для генерации POT файлов, которая находится на странице Admin каждого плагина.

Для доступа к странице Admin , авторизуйтесь в репозитории и нажмите зеленую кнопку Admin , расположенную в сайдбаре:

Следуйте краткой инструкции, изложенной ниже, чтобы научится легко генерировать POT файлы, используя инструмент администратора.

  • Нажмите Continue в секции Generate POT file :


  • Затем нажмите на Get POT , для того, чтобы скачать POT -файл:


Poedit

Есть несколько программ Gettext – переводчиков, но самая популярная среди программ для WordPress плагинов — Poedit . Профессиональная версия Poedit позволяет создать файл PO / POT одним щелчком мыши.

Если у вас нет профессиональной версии, вы можете использовать программу Blank POT .

Поместите файл POT в директорию languages вашего плагина и двойным щелчком по данному файлу откройте его в Poedit . Нажмите Update в Poedit для обновления строк POT файла:


И, наконец, нажмите File > Save или Ctrl + S для сохранения изменений.

Если у вас есть профессиональная версия этой утилиты, генерация POT -файла осуществляется следующим образом:

  • Откройте меню File > New WordPress translation и выберите папку с плагином;
  • Poedit проанализирует всю директорию и найдет строчки для перевода;
  • Выберите язык перевода во всплывающем окне;
  • Ctrl + S и файл будет сохранен как.pot;
  • Вы также можете сохранить файл как .po и впоследствии переименовать его в .POT .


Файлы PO и POT имеют схожий формат. Есть всего несколько отличий между ними:

  • .pot используется переводчиком и это не PO -файл.
  • Результирующий файл с переводом — .po файл и .mo файл – это скомпилированный файл.

Приложить файл POT вместе с плагином — хорошая идея. Переводчикам не придется просить вас об этом.

Плагин L10n

Процесс локализации заключается в переводе и установке многоязычности для плагина.

Как локализовать плагин

Для локализации плагина берем файл POT плагина, открываем его в текстовом редакторе, и в секции msgstr вводим перевод. Перевод заключаем в кавычки.

Имя файла давайте согласно формату my-plugin-{locale}.po , где {locale} код языка и/или код страны, который вы определили в константе WPLANG файла wp-config.php . К примеру, код для немецкого языка — de_DE . Значение my-plugin – название плагина.

Помните о том, что из .po файла генерируется файл .mo (который и используется для перевода платформой WordPress ). Теперь перейдем, непосредственно к генерации MO файла из файла PO .

Онлайн утилиты для конвертации PO в MO

Есть парочка онлайн утилит для конвертации .po файлов в .mo файлы. Лично я использую tools.konstruktors.com :


Для генерации MO файла из PO -файла, загружаем .pot файл. Утилита автоматически сгенерирует и предоставит .mo файл для скачивания.

Используем Poedit для L10n

Poedit представляет собой утилиту для перевода плагинов с простым интерфейсом. Она также может генерировать MO файлы из PO файлов.

Для локализации или перевода плагина на новый язык с помощью Poedit, следуйте инструкции, изложенной ниже:

  • Откройте файл .pot с помощью Poedit .
  • Нажмите на строку, которую хотите перевести и введите перевод в текстовой области, помеченной надписью Translation .
  • Когда весь перевод будет готов, сохраните файл, дав ему имя в формате my-plugin-{locale}.po . Например, espw-plugin-de_DE.po , где espw-plugin – текстовый домен, а de_DE – код языка.

Когда вы сохраните PO -файл, файл MO будет создан автоматически.

Программа выдаст вам файлы локализации (MO и PO файлы). Скопируйте MO (.mo ) файл в папку language вашего плагина для того, чтобы WordPress мог его использовать.

Когда вы будете использовать локализованную версию WordPress , плагин также будет отображаться в той же языковой версии.

Заключение

Если вы хотите, чтобы ваш плагин был доступен большой аудитории – интернационализируйте его и сделайте переводы на нужные языки.

| 0 комментариев | Просмотров: 401

Перевод веб-контента нужен компаниям разного масштаба – крупным, средним, мелким. Для этого некоторые прибегают к доступным и эффективным методам:

1. Бесплатный переводчик для сайта – удобно, но недостаточно для привлечения клиентов.

Он работает неплохо и подходит, если пользователю нужно понять иностранный сайт в общих чертах. Однако такой вид машинного перевода несовершенен и мало подходит для привлечения клиентов.

2. Бесплатные переводы можно публиковать как контент, но он будет дезинформировать вашу потенциальную аудиторию.

Google – прекрасный пример. Поисковый гигант понимает, что востребован во всем мире и старается быть доступным для всех. Поскольку есть еще миллиарды людей, которые не знают английский, Google интерпретирует веб-сайты и результаты поиска на более, чем 100 языков. Однако для полноценного присутствия в разных регионах без профессионального перевода не обойтись.

3. Расширяйте аудиторию благодаря многоязычному сайту, где ваши продукты описаны на разных языках.

Наверняка, учредив бизнес, вы сразу стали ориентироваться на определенную аудиторию, и она изначально не была широка. Согласитесь, перевод веб-контента на несколько языков имеет множество преимуществ. Во-первых, если ваш сайт одноязычный, то вы ориентируетесь только на одну группу людей, понимающих этот язык. Во-вторых, переводные материалы повышают в аш сайт в поисковой выдаче и доносят сообщение до людей, которые не знают ваш основной язык. Пользователю удобно зайти на сайт, нажать на кнопку и получить контент на родном языке, читать его без словарей, программ перевода и прочих помощников.

Простой пример – переводя сайт на испанский, вы сразу обращаетесь к 500 миллионам людей, которые говорят по-испански. Вы одним махом охватываете Европу, Латинскую Америку и часть США.

Лицо бренда – важнейшая составляющая бизнеса . И оно не зависит от размера компании или качества продукции. Встречают по одежке, сперва смотрят на ваш образ. Так и в деловой культуре. Сайт и его оформление, грамотность текста, доступность языка дают массу преимуществ, вызывают доверие у клиентов.

Маркетинг помогает формировать правильное, выгодное вам отношение к вашему бренду. Важно, чтобы люди полюбили бренд, тогда ваши товары и услуги будут покупать регулярно, советовать их друзьям и знакомым. Описанных целей добиваются с помощью интеллектуального маркетинга. Сюда входят таргетированные рекламные объявления, персонализация сообщений и многое другое. Суть метода проста – говорите с аудиторией на одном языке (это и стиль, и манера изложения, при необходимости использование сленга, и многое другое). Для этого следует обращаться к профессиональным лингвистам. Бюро переводов удобно тем, что предоставляет сразу и переводчиков, и редакторов. Также возможна вычитка носителями языка.

4. SEO-оптимизация и результаты маркетинга.

Начните вводить новый контент на свой веб-сайт на нескольких языках, и вы увидите, что трафик возрастет. Чем больше языков вы добавите на сайт, тем больше поисковых машин обнаружит ключевые слова на вашем ресурсе. Google Analytics оценивает регулярность публикаций, геолокализацию, скорость хостинга веб-сайта и так далее. Но будьте уверены: чем больше языков содержит сайт, тем выше вероятность попасть в топ поисковой выдачи.

Кроме того, получив трафик, важно его не потерять. Клиент может зайти и сразу покинуть сайт. Чтобы подобного не произошло, он должен получить качественные материалы – интересные и понятные. Постарайтесь, чтобы аудитория видела в вашем бренде эксперта и советника. Так формируются лояльные клиенты. Они готовы оставлять рекомендации, и не уйдут к конкурентам без веской причины. Переводите положительные отзывы и комментарии о компании. Заметьте, молодое поколение в Интернете почти с рождения. Для них отзывы важнее маркетинговых материалов.

5. Наладьте долгосрочные отношения с переводческой компанией

Скорее всего, ваш сайт уже работает и регулярно обновляется. Поэтому переводы будут нужны постоянно . При этом в каждом новом тексте важно сохранять единство терминологии, стиль и манеру изложения. МСП “Филин” ведет глоссарии для своих постоянных заказчиков. Это списки узкоспециализированных терминов, речевых оборотов, которые согласовываются с заказчиком. Глоссарии значительно упрощают перевод и минимизируют разбежности в лексике, позволяют сохранить целостность и единство всех текстов.

Кроме того, лучше довериться проверенным людям, особенно если ваш контент конфиденциален. Солидная организация дорожит своей репутацией. В бюро переводов отработаны четкие механизмы контроля и предотвращения утечки данных.

Существует несколько способов сделать это, я могу определить весь текстовый элемент и загрузить строку json jiscript из javascript и использовать некоторый javascript для замены текста, чтобы сделать это... Кроме того, я проверяю, что есть другие способ сделать это тоже. Например, некоторые из них используют платформу, чтобы сделать это. Например, J2EE имеет собственный способ его реализации. Кроме того, я могу создать отдельную страницу для каждого языка.

Но есть ли способ сделать локализацию гибкой или предложенной? Спасибо.

3 ответов

Мне кажется, что вы действительно просите: как правильно реализовать Локализуемость? Или как программировать, чтобы упростить локализацию приложения.

Это вопрос, связанный с интернационализацией. Вам нужно иметь несколько вещей, чтобы ваше приложение легко локализовалось:

  • Не печатайте строки (это очевидно)
  • Не печатайте информацию о стиле (не используйте теги форматирования, такие как , < я > , , и т.д., не используйте это:

    Success!

    ). Это предотвратит их изменение в локализации (т.е. Удаление выделенного полужирного текста из CJKV-переводов).
  • Избегайте использования сложных сообщений (например, "Функция выполняет "). Их довольно сложно перевести правильно. Если у вас нет большого количества переменных, это не помешает добавить еще несколько строк в ресурсы.
  • Не объединяйте составные сообщения либо с помощью оператора concatenate, либо просто помещая строки рядом друг с другом (т.е. не делайте этого: String message = "Function " + function + " does " + whatItDoes; или это: #{["something"]}#{["some_link"]}#{["something_else"]}), вместо этого используйте форматирование (т.е. MessageFormat.format("Hello, {0}. You have {1} new messages.", name, mailCount);). Это не позволит переводчику переупорядочить предложение, и это может потребоваться из-за правил грамматики целевого языка.
  • Не используйте необработанные заполнители (например,% s% i% u), если в предложении есть более одного такого типа (вместо этого лучше использовать нумерованный заполнитель, например {0}, {1}). Опять же, иногда переводчики должны переупорядочить предложение...
  • Не используйте языковые конструкции, специфичные для английского языка (например, "панель инструментов Paweł", где Paweł - это имя, которое я предоставил во время регистрации). Невозможно правильно перевести его на несколько языков.

Кроме того, есть вещи, которые нужно сделать:

  • Предоставить механизм переопределения таблицы стилей (чтобы парни-локаторы могли изменять стиль элемента)
  • Назначить уникальный идентификатор для каждого элемента отображаемой HTML-страницы (это позволит им нацеливать точное управление с их переопределенным стилем)
  • Используйте кодировку UTF-8, где бы вы ни находились (явно HTML-страницы, электронные письма, если они есть, но, возможно, файлы ресурсов (т.е. свойства))

Существует гораздо больше вещей, не связанных с локализуемостью, такими как рабочий процесс определения языка, форматирование и проверка чисел, валют, дат (включая настройку правильных часовых поясов), которые вам нужно будет заботиться в правильно глобализованном приложении, но это на самом деле другая история.

Практически все приличные рамки веб-разработки имеют понятие локализованных "пакетов ресурсов". Вы просто убедитесь, что у вас есть пакет ресурсов для каждого поддерживаемого языка вашим приложением, причем каждый из них использует один и тот же "ключ" для ссылки на локализованную строку. Просто используйте средство, предоставляемое фреймворком/языком, для загрузки текста из пакета на основе "ключа", и вам должно быть хорошо идти.

Что касается обнаружения локали, снова есть два способа сделать это; автоматическое обнаружение, которое является довольно распространенным механизмом, используемым веб-приложениями и механизмом, основанным на выборе, который использует комбинацию автоматического обнаружения наряду с раскрывающимся списком языка, предоставленным пользователю.

Конкретные шаги будут специфическими для языка/структуры, поэтому вы можете указать структуру, которую вы используете для конкретных ответов.

С другой стороны, если вы действительно спрашиваете, как извлекать переводимые ресурсы, я должен прийти с совершенно другим ответом.

Я бы не использовал страницу для каждой идеи языка. Это может быть хорошо, если у вас мало и далеко от статических веб-страниц. Когда вы создаете динамическое веб-приложение, особенно если есть вероятность быстрого роста с точки зрения размера содержимого, это убьет вас. И вы не сможете легко добавлять новые языки.

Локализация на стороне клиента приведет к ужасно медленному приложению, не делайте этого. Люди будут ненавидеть это.

И последнее, но не менее важное: типичный способ реализации (это не лучшее слово здесь, потому что у него много других значений). Локализуемость - это просто извлекать строки для некоторых файлов ресурсов (то есть ResourceBundle в мире Java) и сохранять их в отдельном jar (я бы предложил одну банку на язык, названный в соответствии с идентификатором локали, то есть ja.jar, de.jar, fr-CA.jar). Файл jar также должен содержать дополнительный файл CSS (содержимое которого будет использоваться для переопределения определенных стилей). Все остальное, что вы найдете в моем предыдущем ответе...




Top