Какой языковой код следует использовать для поддержки нескольких языков?

Я хочу использовать таблицы перевода, как описано здесь в третьем примере.

Это несложно реализовать, но мне интересно, как кодировать эти языки? Я просмотрел файлы ISO 639-3, содержащие последние языки и их коды, но стоит ли включать их все?

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

Итак, существует ли «обычно используемый» список языков? Я не думаю, что Facebook и/или Google действительно поддерживают 7866 языков, а это число языков, перечисленных в ISO 639-3.

Или я должен использовать названия языковых и региональных параметров такие коды как en-UK, en-US, de-AT и т.д.?


person Stefan Falk    schedule 29.12.2015    source источник


Ответы (1)


Насколько я понимаю ваш вопрос, вы спрашиваете, следует ли вам создать справочную таблицу с 7866 строками, по одной для каждого языка в ISO 639-3. Я действительно не вижу недостатков, поскольку это не потребует больших затрат на хранение или производительность по сравнению с простым хранением подмножества.

Реальный вопрос заключается в том, какие языки вы хотите на самом деле переводить и хотите ли вы поддерживать диалекты. Если вы этого не сделаете, вы можете просто использовать такие языки, как en, fr и т. д., и вы можете просто сохранить их в справочной таблице, если хотите (хотя экономия минимальна).

Если вам нужны диалекты, вам понадобятся en-us, en-gb и т. д. Поскольку они должны вернуться к недиалектной версии (т.е. просто en), было бы неплохо, чтобы ваши столбцы различали язык и диалект. Таким образом, вы можете хранить «en | us», «en | gb» (возможно, также «en | null»), и будет легко предоставлять переводы в качестве переопределений, но большинство из них возвращаются к диалекту по умолчанию.

person mahemoff    schedule 04.03.2016
comment
Я уже пришел к такому же выводу, но спасибо за ответ. :) - person Stefan Falk; 04.03.2016