Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 November 25

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Nikita Loshchenin
Всем привет! Я планирую проект по Nuxt.js, но на данный момент не могу найти элегантное решение для функциональности регионов. Я был бы очень признателен за идею, которая поможет реализовать функционал, в котором префикс выбранного региона будет добавлен к URL-адресам. Пример:

https://example.net/.../ - стандартный регион (EU регион)

https://example.net/eu/.../ - EU регион

https://example.net/au/.../ - AU регион

Нечто подобное делает nuxt/i18n, но проблема в том, что каждый регион может иметь несколько языков и планирую i18n держать только в cookies. На данный момент есть только одна идея - сделать это через NGINX, но я пока не уверен, что это сработает (взять каждый url с префиксом региона и проксировать его на localhost:3000 в качестве примера). Я не прошу вас писать код , мне нужен совет, в какую сторону смотреть (реализовывать через посредник роутера или возможно есть специальный модуль для такого). Если у вас есть какие-то идеи,  буду очень благодарен.
{
 ..
 data
 ..
 defaultRegionLanguage: ‘ru’
 accessRegionLanguages: [‘ru’, ‘en’]
}
источник

NL

Nikita Loshchenin in Nuxt.js — русскоговорящее сообщество
Sla V
{
 ..
 data
 ..
 defaultRegionLanguage: ‘ru’
 accessRegionLanguages: [‘ru’, ‘en’]
}
facepalm... спасибо! Кажется я все сам себе усложнял!)
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Nikita Loshchenin
facepalm... спасибо! Кажется я все сам себе усложнял!)
Подойдёт?
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
И тип просто в query параметр запихиваешь нужный язык внутри этого региона и вызываешь апишку или что там у тебя
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Я тут сам с локализацией намучался)
источник

NL

Nikita Loshchenin in Nuxt.js — русскоговорящее сообщество
Sla V
Подойдёт?
Сейчас доку nuxt/i18n посмотрю, не видел там опцию accessRegionLanguages, если такая там есть, то думаю вполне подойдет)
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Nikita Loshchenin
Сейчас доку nuxt/i18n посмотрю, не видел там опцию accessRegionLanguages, если такая там есть, то думаю вполне подойдет)
Нееее. Ты не понял. Я говорю, чтобы ты добавил в каждый регион дефолтный и доступные для них языки. В сами данные. Зачем себе жизнь усложнять
источник

TK

Taras Khvyl in Nuxt.js — русскоговорящее сообщество
Nikita Loshchenin
Сейчас доку nuxt/i18n посмотрю, не видел там опцию accessRegionLanguages, если такая там есть, то думаю вполне подойдет)
так это не из доки)
источник

TK

Taras Khvyl in Nuxt.js — русскоговорящее сообщество
Nikita Loshchenin
Спасибо за ответ, но скорее всего я плохо задал вопрос. На входе имеем регионы, у каждого региона может быть 1-5 локализаций. Например у EU региона французкий, немецки и английский языки. Локализации в URL не участвуют, они будут определяться по cookies. Собственно вопрос вот в чем, как сделать что бы url example.net/catalog/ example.net/eu/catalog/ и example.net/au/catalog/ смотрели на один и тот же компонент страницы catalog.vue ?
а если создать папку _lang и в индекс.вью через validate проверить доступность локали
источник

TK

Taras Khvyl in Nuxt.js — русскоговорящее сообщество
мы так с городами делали на одном из сайтов
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Taras Khvyl
а если создать папку _lang и в индекс.вью через validate проверить доступность локали
Либо так, да и в параметры пихать доступный язык
источник

NL

Nikita Loshchenin in Nuxt.js — русскоговорящее сообщество
Taras Khvyl
мы так с городами делали на одном из сайтов
А как избежали дублирование компонентов страниц? При таком подходе получается все дерево страниц будет и в корне pages и внутри _lang папки если я правильно понял(
источник

TK

Taras Khvyl in Nuxt.js — русскоговорящее сообщество
Nikita Loshchenin
А как избежали дублирование компонентов страниц? При таком подходе получается все дерево страниц будет и в корне pages и внутри _lang папки если я правильно понял(
да, в этом есть нюанс) ну как выход - можно собрать единый компонент для страницы и подключать его чисто в шаблон страницы. интересно было б узнать еще решения
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Ничего там дублироваться не будет. _lang нужен только для указания языка
тип
index.vue
contacts.vue
_lang
 index.vue
 contact.vue
источник

TK

Taras Khvyl in Nuxt.js — русскоговорящее сообщество
Sla V
Ничего там дублироваться не будет. _lang нужен только для указания языка
тип
index.vue
contacts.vue
_lang
 index.vue
 contact.vue
он имеет в виду, если не будет указан регион
источник

TK

Taras Khvyl in Nuxt.js — русскоговорящее сообщество
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Taras Khvyl
он имеет в виду, если не будет указан регион
Там же всё экстендится
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Изначально в корне pages .vue страница берёт то, что есть в _lang
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Либо я туплю и лыжи не едут)
источник

SV

Sla V in Nuxt.js — русскоговорящее сообщество
Taras Khvyl
он имеет в виду, если не будет указан регион
Правильно ли я понял, что если не будет указан регион, то страница всё равно отрендерится?
источник