Мультиязычность, как будет правильно спроектировать?
Здравствуйте, почитал я значит вопросы тут уже были, и не мало, но все же там как-то все размыто и каждый вопрос заточен под что-то определенное, например новостной сайт.
Для меня вроде все понятно, но остаются маленькие нюансы которые меня беспокоят.
Вопрос первый как будет более правильно выйти на язык, более правильно для СЕО
Как выйти на язык, вставлять в ссылке типа, http:// site. ru/en/url не очень хочется.
делать суб домен : http://en.site.ru/url это более предпочтительно, но не делать же на субдоменах весь сайт.
Например возьмем facebook, как там определяется какой язык включить ?
Вопрос второй как будет более правильно выставить мета теги и title страницы, для каждого языка?
Я понимаю что статический контент (надписи на кнопочках и прочее) лучше хранить в файлах ( я храню в JSON файле )
Но вот для каждого языка нужен свой заголовок страницы и свои meta tags, сейчас у меня для этого в бд есть таблица: id | page | description | keywords | lang
Я для нужного языка я достаю нужную запись и вставляю в шаблон, но это лишний запрос к бд и меня смущает нужно ли это, может быть можно как-то проще и более адекватно?
Вопрос третий компромисс между загрузкой страницы и генерацией
Как все же будет более правильно сделать чтобы небыло большой нагрузки?
Я понимаю что более адекватно сделать 1 шаблон для всех языков, а заполнять его статические данные (название кнопочек и прочее) из файла, JSON например.
Но опять же шаблоны большие и много чего заполнить нужно, как более правильно все это реализовать?
Чтобы нагрузки были не большие...
1) сабдомены лучше
определяете, куда редиректить, по а) куке языка (когда юзер выставляет ее явно), б) стране IP (когда юзер первый раз) в) языку браузера
б и в можно менять местами
2) второй запрос необязателен, используйте шаблонизатор - ему язык, он дальше собирает контент, запрос будет только один в тот язык, что определен