Предназначена ли «культура» (например, es-MX, en-US) для локализации -контента- или -внешнего вида- веб-сайта?

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

Мне нужно создать веб-сайт, который поддерживает как многоязычность, так и локализованный контент. Я обнаружил, что, например, в Соединенных Штатах невозможно указать нидерландский язык («nl-US»). Я хотел бы указать язык и местоположение в URL-адресе веб-сайта. Означает ли это, что мне нужно перейти по адресу: www.domain.com/en-US/Netherlands/?

Я надеюсь, что моя проблема ясна .. Спасибо заранее.


person Ropstah    schedule 05.01.2010    source источник


Ответы (2)


Культурные коды признаны во всем мире. Причина, по которой вы видите их как fr-FR для французского языка (Франция), заключается в том, что на французском говорят во многих странах, и в этих других местах он разный. Это позволяет людям, которые переводят, сосредоточиться на нюансах определенного диалекта языка.

Вы не можете просто вставить туда любой код страны. Вы должны отслеживать страну отдельно, если вам это нужно.

Редактировать. Основываясь на комментариях, я хочу добавить дополнительную информацию.

  • Если вам нужно выяснить, в какой стране на самом деле находится пользователь, независимо от его или ее региона, рассмотрите возможность использования Сопоставление IP-адреса с кодом страны ISO-3166.

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

    1. Detect their country using the ISO-3166 country mapping above.
    2. По умолчанию используется их текущая локаль (т. е. если их компьютер настроен на en-US, используйте английский язык).
    3. Отобразите где-нибудь раскрывающийся список со всеми поддерживаемыми вами локалями и их языками и позвольте им переключаться, когда они хотят.

Я думаю, что это охватывает все ваши вопросы/сценарии.

person Ed Altorfer    schedule 05.01.2010
comment
Четкий ответ, как это называется? При поиске локализации, глобализации или культуры я в конечном итоге устанавливаю локальные настройки... Мне также нужен контент для конкретной страны, но управляемым способом... - person Ropstah; 06.01.2010
comment
Я не совсем уверен, что вы имеете в виду под этим, но я предполагаю, что ваш вопрос заключается в том, как определить, в какой стране находится компьютер. Вы можете подумать о сопоставлении кода страны IP -> ISO-3166. Используйте IP-адрес клиента, если это возможно. codeproject.com/KB/cs/iptocountry.aspx - person Ed Altorfer; 06.01.2010
comment
Клиент должен иметь возможность выбрать местоположение (веб-сайт в США, веб-сайт на японском языке...), а также иметь возможность выбрать язык (голландский, немецкий...). Таким образом, может случиться так, что пользователь зайдет на японский веб-сайт с выбранным голландским языком. Этого перевода скорее всего не будет, но не в этом дело. Что, если клиент хочет обычный испанский в качестве языка и Мексику в качестве местоположения, означает ли это: xxx.com/es-ES/Mexico/ или наоборот: xxx.com/es-MX/Spain для мексиканского испанского в Испании? - person Ropstah; 06.01.2010
comment
Я бы предложил выбрать для них свою страну, используя сопоставление IP-адреса со страной, на которое я ссылался выше. Если вы хотите, чтобы они могли выбирать свой язык, просто перечислите все поддерживаемые вами локали в списке где-нибудь и позвольте им переключаться по желанию. По умолчанию используйте тот язык, который используется в их родной стране — если вы находитесь во Франции, используйте fr-FR. - person Ed Altorfer; 06.01.2010
comment
Я не рекомендую использовать передачу IP в страну как единственный метод; лучше сделать это явным. - person Noon Silk; 06.01.2010
comment
Нет 100% надежного способа получить страну пользователя без использования такого метода. Это, вероятно, будет более точным, чем использование локали пользователя, которая определяется исключительно клиентом. Единственные проблемы, которые у вас возникнут с преобразованием IP-адресов, будут связаны с тем, что пользователь посещает ваш сайт через международную VPN или что-то в этом роде. - person Ed Altorfer; 06.01.2010
comment
Эд: Да, но более распространенный сценарий заключается в том, что пользователь пытается просмотреть международный сайт из другой страны (часто это то, что вы хотите сделать, если покупаете продукты или бронируете отели и т. д.). Так что это зависит от типа сайта. Однако, как правило, почти все крупные сайты не навязывают вам страну, вы можете выбрать ее сами. - person Noon Silk; 06.01.2010
comment
Я никогда не предлагал, чтобы пользователя заставляли что-то делать. Я предложил, чтобы OP определял страну и сохранял ее для всего, что он хочет делать, а затем ПО УМОЛЧАНИЮ для локали пользователя (например, информация, установленная клиентом) и позволял пользователю переключаться по желанию. Я предлагаю это, потому что ОП заявляет, что он хочет иметь возможность определять страну пользователя ДОПОЛНИТЕЛЬНО к их локали. - person Ed Altorfer; 06.01.2010

Он также может работать с языками; с файлами resx. Проверьте несколько руководств; это довольно красиво.

-- Редактировать: пытался найти кое-что для вас, лучшее, что я могу придумать, это: http://msdn.microsoft.com/en-us/goglobal/bb688096.aspx, возможно, кто-то другой может предоставить более конкретные ссылки.

Очень краткий обзор заключается в том, что вы можете добавлять различные файлы resx (.es-ES, .es-CO [если это файл для Колумбии), а затем привязывать записи в этих файлах к элементам управления (или использовать их просто как глобальные переменные для различных целей). Таким образом, у вас есть ярлык вроде:

(Not exactly that, but something like that, please correct me if I'm slightly wrong) and it will get the appropriate text for whatever language the browser that the user is using has requested (you need to make a slight change in the web.config for this info to get passed in though). It should all be layed out for you in the link I've provided.

person Noon Silk    schedule 05.01.2010
comment
Лол, спасибо за ссылку, там это было. Может быть, несколько советов о том, как смотреть на «местоположение» в культуре. Кажется, это касается только «местного» языка, валюты и вопросов форматирования. Не «локализировать» бизнес-контент......? - person Ropstah; 06.01.2010
comment
Ах, расширил, пока вы комментировали :) Надеюсь, понятно? Что вы подразумеваете под «бизнес-контентом»? Вы хотите предположить, что локаль указывает на страну? Вы можете сделать это, но это будет немного запутанно; Я предлагаю вам иметь разные URL-адреса для этой цели (чтобы поисковые системы были понятны, и люди могли четко связывать друг друга с определенными частями страницы). - person Noon Silk; 06.01.2010
comment
Под бизнес-контентом я подразумеваю контент, а не отображение/форматирование (язык и т. д.). Я хочу, чтобы продукт X был на главной странице США, а продукт Y — на главной странице Японии (очевидно, это немного сложнее). Я также хочу, чтобы поисковые системы отображали как американские, так и японские сайты на ВСЕХ языках, на которых они доступны. Я хочу использовать только 1 (один) домен .com. Я думаю, Эд понимает, о чем я говорю... - person Ropstah; 06.01.2010
comment
ropstah: Вы можете принимать решения на основе локали, как я уже сказал (в коде вы просто решаете, что делать), но, вероятно, я бы сделал это немного по-другому (как я сказал выше) и использовал подход на основе URL (т.е. будьте ясны в этом), потому что это облегчает жизнь всем (как я уже сказал в моем комментарии выше). - person Noon Silk; 06.01.2010
comment
Никогда не бывает безопасно делать предположения, основанные на локали, поскольку пользователь полностью контролирует ее. Если вы действительно хотите знать, откуда они пришли, вы должны определить это отдельно от их текущих языковых и культурных настроек. Хорошо, если для этого вам не нужны точные данные, но вы получите группу людей в США, которые используют другие локали в своих системах. - person Ed Altorfer; 06.01.2010
comment
Эд: Вполне допустимо установить язык сайта в соответствии с локалью браузера; вот ПОЧЕМУ они так настроены (чтобы веб-сайты вели себя по-другому). Однако, как я уже объяснял ropstah, не стоит принимать бизнес-решения исключительно по этому поводу; это должно быть сделано явно. - person Noon Silk; 06.01.2010
comment
Не уверен, что вы имеете в виду под явным образом, поскольку невозможно точно определить, в какой стране находится пользователь. OP подразумевает, что он действительно хочет предоставить контент для конкретного местоположения в определенной локали. Это может быть что-то вроде контента для США на французском языке, который нельзя получить из настроек локали пользователя. - person Ed Altorfer; 06.01.2010
comment
ЭД: Явно означает вы спрашиваете их. (то есть сделать это опцией). - person Noon Silk; 06.01.2010
comment
С точки зрения UX, я думаю, это плохой тон. Вы не должны запрашивать у пользователей информацию, если есть разумное значение по умолчанию; в этом случае разумным значением по умолчанию было бы либо принять присущую неточность использования локали, либо использовать сопоставление IP-адресов, что (ИМХО) более соответствует тому, что пытается выполнить OP. - person Ed Altorfer; 06.01.2010
comment
Эд: Вы можете так думать. И я могу считать вас неправым. Нам не нужно соглашаться :) - person Noon Silk; 06.01.2010