Поиск по сайту
Результаты поиска по тегам 'l12n'.
Найдено 1 результат
-
Я вот тут задумался, а как быть с интернационализацией (и локализацией) программ? Когда программа становится достаточно большой и популярной, возникает мысль выложить её на каком-нибудь иностранном ресурсе. Ну или просто какой-нибудь чувак приходит и говорит: "I like your program very much, but I don't understand russian at all". Свой голографический редактор, например, я поддерживаю в двух версиях одновременно - русской и английской. По сути два отдельных клона программы. Это не очень удобно. Отсюда вопрос - как запилить удобную систему локализации программ? 1) Клоны программы на разных языках Самый дубовый способ. То как я делал до недавнего времени. Выпускаете программу, делаете несколько копий, каждую переводите на разные языки. Не очень удобно для вас - потому что надо клонировать и переводить каждую новую версию. Не очень удобно для тех, кто хотел бы вам помочь с переводом - они не разбираются в вашем коде, и искать в нём, что надо перевести им будет не удобно. Эту задачу можно облегчить, если вынести все фразы в табличку в начале программы: local text = { greetings = "Приветствую!", ... } Тогда можно будет не копаться в поисках отдельных строк по всему коду, а только перевести эту табличку. 2) Файлы локализации Делаем отдельный файлик, наподобие конфига. В него записываем такие же пары значений, например: greetings = Приветствую! И потом считываем его из программы при старте. Можно сделать дефолтные значения, которые прописаны прямо в коде, и будут использоваться, если программа не нашла файлы локализации. Сами файлики могут лежать рядом с программой, или в папке /etc/my-project/..., или ещё где-то. Если заливать программу в репозиторий, тоже возникают варианты. Мы может создать несколько пакетов, например: holo-ru, holo-en. Это как-то немного нелогично. Установка программы будет выглядеть так: hpm install holo-en Другой способ - это дублировать версии пакета, и дописывать им языковой суффикс: 0.1.0-en, 0.1.0-fr. Вроде получше. Установка будет выглядеть так: hpm install holo@0.7.1-ru Недостаток - нам всегда придётся указывать версию полностью. То есть нельзя будет как раньше - просто указать название пакета, а репозиторий сам выдаст самую свежую версию. Ещё один способ - это держать файлы локализации отдельными пакетами от основного проекта: проект holo и локализационный пакет holo-lang-en например. Тогда саму программу можно будет установить как раньше. Но если мы захотим сменить дефолтный язык, придётся указывать дополнительный пакет: hpm install holo, holo-lang-en Тоже не совсем юзерфрендли. Предлагаю обсудить эту тему, и придти к какому-нибудь удобному стандарту. Какие варианты решения проблемы приходят вам на ум?