Я создаю сайт, который позволит людям создавать контент и размещать комментарии к контенту.Локализация динамического пользовательского контента. Мнения по этим двум вариантам?
Для таких вещей, как метка формы, кнопки и другое статическое содержимое, я могу использовать файл .resx
. Я делал это раньше, и это работает нормально.
Теперь я на перекрестке, где я не знаю, какой путь принять. Оба одинаково хороши для меня, но так как это будет мой первый набег на такую территорию, я бы предпочел спросить о любых подводных камнях, которые я, возможно, не принимаю во внимание.
Вот два варианта, которые я думал о внедрении. Оба решат мою проблему локализации и представления пользовательского контента моим пользователям.
Вариант А:
Я хотел бы создать несколько копий всего приложения MVC3 и поместить каждую локализацию в его собственном приложение IIS.
foobar.com
es.foobar.com
ru.foobar.com
И мне просто нужно будет изменить файл web.config, чтобы использовать другую базу данных для каждой локализации.
Я вижу некоторые проблемы с этим, например:
Если пользователь входит в
foobar.com
и он должен был посетить его локализованную версию сайта, он не будет войти в систему, так как они являются два полностью отдельные приложения.Нет унифицированных средств модерации. Я должен был бы войти в каждое приложение, войти в систему, получить доступ к панели администратора и умерить оттуда.
Затрудняюсь сменить изменения/обновления для всех версий страницы. Мне пришлось бы вручную перейти в каждую папку приложения IIS и скопировать опубликованные файлы для каждой локализованной версии.
Вариант B:
Я хотел бы создать единое приложение MVC3 и на серверной базе данных создать несколько полей для каждой локализации.
Например:
Car
------
CarID
Name
esName
ruName
Make
esMake
ruMake
..and so on..
я тогда как-то динамически выбирать, какие поля для отображения на основе того, что локализация будет выбран. Хотя я даже не уверен, что это возможно, так как посещение субдомена приведет меня к совершенно другому приложению IIS, если я не могу привязать субдомен к фактическому домену на моем IIS.
foobar.com
es.foobar.com
ru.foobar.com
Проблема, которую я вижу с этим подходом является то, что каждая таблица будет зверской в размере, не только в ряде областей, но и в количестве записей. Я не уверен, что это будет проблемой.
Я хотел бы получить некоторые предложения о том, как реализовать локализацию для созданного пользователем контента в приложении MVC3.
Смысл, пользователь, посетивший испанскую версию (es.foobar.com
), увидит другие испанский контент и комментарии, сделанные пользователями, и не другие версии. I не означает перевод их содержимого и предоставление его конечному пользователю.
Почему бы просто не сделать yoursite.com/en/customer/1 и включить параметр маршрута en, чтобы вы могли установить культуру и вытащить из файла ресурсов или базы данных и т. Д.? –