Интернационализация приложений Vue

Поделиться
HTML-код
  • Опубликовано: 16 ноя 2024

Комментарии • 31

  • @IlyaBodrovKrukowski
    @IlyaBodrovKrukowski  Год назад

    Друзья, вот тут вы можете найти более свежую версию этого видео для Vue 3 ruclips.net/video/kHJwKurpEXc/видео.html

  • @alexakuna6529
    @alexakuna6529 3 года назад +6

    Как раз то что ищу. Спасибо.

  • @YellowPanamka
    @YellowPanamka 2 года назад +1

    Большое спасибо, все очень понятно!

  • @muhtoryusufjanov3946
    @muhtoryusufjanov3946 3 года назад +2

    Thanks :) 👍

  • @azizsobirjonov4462
    @azizsobirjonov4462 2 года назад +1

    super

  • @mrrobot7387
    @mrrobot7387 3 года назад

    в итоге же логика не работает. мой язык в navigator ru-RU, а плагин выставляет en всегда по дефолту. где-то ошибка, пытаюсь найти, но пока без результатно

  • @calmastia8649
    @calmastia8649 3 года назад

    А как добавить больше чем 2 языка?
    Создал pl.json (после заполнил его как и предыдущие)
    В .env сделал вот так:
    VUE_APP_I18N_SUPPORTED_LOCALE=en,ru,pl
    Но новой строчки под en, ru в браузере не добавилось.
    Заранее спасибо

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  3 года назад

      Ну, там по крайней мере надо добавить перевод для пункта меню.. Можно просто пройтись по тексту lokalise.com/blog/vue-i18n и посмотреть основные шаги добавления языка, я просто так уже не помню, тк делал это видео почти год назад

  • @evgeniythai778
    @evgeniythai778 3 года назад +1

    Не хватает сохранения локали, выбранной пользователем, которая устанавливается при повторном входе.

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  3 года назад

      Да, это правда. Её можно сохранять в куки, например, а потом считывать при входе. Видео, если честно, и так слишком длинное вышло :)

  • @QuadringentiViginti
    @QuadringentiViginti 3 года назад +1

    Можно определять язык и стандартными функциями.
    export default new VueI18n({
    locale: (navigator.language || navigator.userLanguage).split('-')[0],
    fallbackLocale: 'ru',
    messages: loadLocaleMessages()
    })

  • @Viktorres1
    @Viktorres1 3 года назад

    Ваш пример работает!
    Но, когда пытаюсь создать приложение сам, всё заканчивается на этом этапе:
    new VueI18n({
    // Key - language to use the rule for, `'ru'`, in this case
    // Value - function to choose right plural form
    pluralizationRules: {
    /**
    * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`
    * @param choicesLength {number} an overall amount of available choices
    * @returns a final choice index to select plural word by
    */
    'ru': function(choice, choicesLength) {
    // this === VueI18n instance, so the locale property also exists here
    if (choice === 0) {
    return 0;
    }
    const teen = choice > 10 && choice < 20;
    const endsWithOne = choice % 10 === 1;
    if (choicesLength < 4) {
    return (!teen && endsWithOne) ? 1 : 2;
    }
    if (!teen && endsWithOne) {
    return 1;
    }
    if (!teen && choice % 10 >= 2 && choice % 10

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  3 года назад

      Хм. Если вы используете Vue 3, то там, возможно, уже есть изменения (этот пример только на Vue 2 тестировался)

    • @Viktorres1
      @Viktorres1 3 года назад

      @@IlyaBodrovKrukowski как раз на Vue2 делаю

    • @IlyaBodrovKrukowski
      @IlyaBodrovKrukowski  3 года назад

      @@Viktorres1 А что не работает конкретно? Какие-то ошибки?..

  • @calmastia8649
    @calmastia8649 3 года назад

    А как добавить больше чем 2 языка?
    Создал pl.json (после заполнил его как и предыдущие)
    В .env сделал вот так:
    VUE_APP_I18N_SUPPORTED_LOCALE=en,ru,pl
    Но новой строчки под en, ru в браузере не добавилось.
    Заранее спасибо!