Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 10.01.2017 08:41:10

Локализацию с Vue

Как мне в шаблоне <template> можно будет подставлять текст разных языков?

Не в сети

#2 10.01.2017 17:06:48

Re: Локализацию с Vue

не могу сказать как вообще vue-исты решают этот вопрос, но мне кажется тут надо смотреть – а как вообще в принципе делается локализация js-приложений. в шаблонах же можно рендерить языковые строки уже обычным js-кодом. мне кажется эта задача не является специфичной для vue

Не в сети

#3 12.01.2017 18:44:24

Re: Локализацию с Vue

constb пишет:

не могу сказать как вообще vue-исты решают этот вопрос

точно так же как Тейлор решает вопрос с локализацией - папкой lang.

Не в сети

#4 12.01.2017 18:55:40

Re: Локализацию с Vue

hzone пишет:
constb пишет:

не могу сказать как вообще vue-исты решают этот вопрос

точно так же как Тейлор решает вопрос с локализацией - папкой lang.

Ну, а если не использовать blade? В Blade шаблоне находится только один div, к которому подключается Vue-компоненты. Или выход перенести все в Blade?

Не в сети

#5 12.01.2017 21:19:56

Re: Локализацию с Vue

речь ни разу не о блейде, а об архитектуре.
грузи свои шаблоны из соответствующей app()->getLocale() переменной папки

Не в сети

#6 12.01.2017 21:23:30

Re: Локализацию с Vue

это самый простой, "нормализованный" вариант архитектуры. он плох тем, что придётся поддерживать дубликат для другого языка.

есть другой вариант - пиши локализованные переменные и для js, например создай какой-нить localization.en.js объект. и его дёргай от какой-нить переменной, хранимой напримерв теге <html lang="{{app()->getLocale()}}">, которую дёрнуть как два пальца об асвальт.

нынешнее поколение не креативно. ищет готовые решения. огорчает.

Не в сети

#7 07.08.2017 11:54:12

Re: Локализацию с Vue

нынешнее поколение не креативно. ищет готовые решения. огорчает.

Да, потому что мы хотим все правильно и по стандарту делать, потому и ищем, создаем темы, спрашиваем, а не хоть как лишь бы работало.)

Не в сети

#8 07.08.2017 17:53:22

Re: Локализацию с Vue

Я недавно задался этим вопросом и не нашел идеального решения. Зато нашел очень много великов, некоторые из которых уже не работают (т.е. перестали работать при малейшем обновлении), некоторые грузят все переводы при каждом запросе (здравствуйте, JS файлики в пару мегабайт).

Использовал пакет vue-i18n, инициализацию сделал так:

import VueInternalization from 'vue-i18n';
import Locales from './vue-i18n-locales.js';

Vue.use(VueInternalization);

// Get current localization from URI. Returns string like 'en' or 'ru'.
Vue.config.lang = window.location.pathname.split('/')[1];

Object.keys(Locales).forEach(function (lang) {
  Vue.locale(lang, Locales[lang])
});

При этом фразы с переводами находятся в vue-i18n-locales.js:

export default {
    "en": {
        "app": {
            "example": "Example"
        },
    },
    "ru": {
        "app": {
            "example": "Пример"
        }
    }
}

В компонентах Vue.js:

<label for="description" class="control-label">{{ $t('app.example') }}</label>

Может быть пригодится. Если у кого-то есть более интересное решение, поделитесь.

Не в сети

Подвал раздела