Не повторяйте себя по сравнению с Интернационализацией

11
задан Eugene Yokota 13 September 2008 в 20:42
поделиться

6 ответов

Я попытался бы сохранить полные предложения в ресурсе языка. Как Вы сказали, Вам, возможно, понадобились бы различные слова в различных контекстах. Но большая проблема состоит в том, что порядок предложений мог бы отличаться на различных языках. Так создание строк от слов может вызвать проблемы.

Просто хранилище

The printer is on
The printer is off
The stapler is on
The stapler is off

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

16
ответ дан 3 December 2019 в 03:19
поделиться

100% соглашаются с Mendelt.

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

  The printer is on: Imprimanta este pornită // feminine
  The printer is off: Imprimanta este oprită
  The stapler is on: Perforatorul este pornit // masculine
  The stapler is off: Perforatorul este oprit

Также см. http://www.mihai-nita.net/article.php?artID=20060430a

7
ответ дан 3 December 2019 в 03:19
поделиться

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

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

Например, "% (устройство) % является % (on_or_off) %".

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

2
ответ дан 3 December 2019 в 03:19
поделиться

Я соглашаюсь с Mendelt Siebenga, когда он говорит, что необходимо сохранить все предложения или фразы в файлах ресурсов языка. Различия в грамматике будут всегда препятствовать тому, чтобы Вы делали замену отдельного слова через языки. Это все еще приведет к меньшему количеству повторяющегося кода, чем Ваш первый пример, потому что только необходимо проверить тип объекта и его состояние, затем распечатать соответствующее сообщение от ресурса языка.

2
ответ дан 3 December 2019 в 03:19
поделиться

Я предполагаю, что это зависит на уровне качества языка, которого Вы стремитесь достигать.

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

Необходимо было бы решить, который был более подходящим подходом к конкретной проблеме; Код, который повторяется или кодирует, который пытается быть мастером на все руки и размещает для бесчисленных правил языка (несомненно кошмар обслуживания).

Конечно, можно ударить второй план и минимизировать повторение кода, но бросить удовлетворительное грамматическое красноречие. Возьмите пример Ultima Online - когда он был локализован, строка, которые ранее читают "Груду из 329 золотых монет", стала чем-то как "Груда золотых монет: 329". Не большой, но довольно разумное решение, которое предоставляет себя легко локализации.

1
ответ дан 3 December 2019 в 03:19
поделиться

Я предложил бы использовать CMS, а не жесткое кодирование в Ваших текстовых значениях для покрытия локализации.

0
ответ дан 3 December 2019 в 03:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: