Локаль - Только для интернационализации? - PullRequest
0 голосов
/ 31 января 2012

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

Например, я хотел бы использовать механизм комплектации ресурсов и иметь разные комплекты ресурсов для различной настройки, например, один файл для клиента A, другой файл для клиента B и другой файл по умолчанию (для значений, которых нет в файле конкретного клиента). Единственный способ сделать это - «заставить» локаль для каждого клиента, и я не хочу этого делать.

Есть ли другая структура для такого рода вещей?

1 Ответ

0 голосов
/ 31 января 2012

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

Большинство систем идентификаторов языковых стандартов, использующих их, имеют некоторый способ представления «вариантов» с некоторым механизмом расширения. В ResourceBundle это выглядит как «вариантный» аргумент.

Основная проблема заключается в том, что системы локалей примитивны в том смысле, что они предполагают иерархическую систему, а не ортогональную. То есть, вы можете определить локаль для en-US-xA (для использования идентификаторов локали BCP 47) для английского, США, компании A, но если вам нужен локаль для сотрудников A, предпочитающих канадский французский, это должно быть -CA-xA, и для этого вам нужно будет скопировать настройки, относящиеся к A.

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

...