vue-i18n

时间:2017-08-27 19:58:13

标签: internationalization vuejs2 vue-i18n

我想动态更新vue-i18n中的本地化消息。

我正在建立一个网上商店,每个项目都有更多语言的描述。所以我想要实现的是当我从REST API获取webshop项目时,我想将它们的名称,描述等放到vue-i18n中的messages对象中,以便它可以使用它们。 vue-i18n API是否有办法解决这个问题?我也从服务器获取数据(我得到了一个Promise),那么如何确保它在浏览器视图中得到更新,当我最终获得响应时,并将数据添加到本地化?

1 个答案:

答案 0 :(得分:0)

我所做的是写一个mixin,并在我需要动态本地化的任何地方使用它:

public ref class MyClass {

public:
    MyClass() {};  
    MyClass(array<int, 2> ^(&A1), const int &i2) : A1(A1), I2(i2) {};
    String^ Method(); 
    ~MyClass() {};

private: 
    array<int, 2>^ A1 = gcnew array<int, 2>(3, 3) {
        { 1, 1, 1 },
        { 1, 1, 1 },
        { 1, 1, 1 },
    };  
    int I2 = 5;  
};

String^ MyClass::Method() // Simple output for debugging 
{
    String^ OutputText;
    int sum=10;
    OutputText= "OutputText = " + sum;
    return OutputText;
}

这样,当我的文字如下所示时,我可以拨打export default { methods: { $t: function (translate) { if (typeof translate === 'string') { return this.$i18n.t(translate) } else if (translate === void 0) { return this.$i18n.t('loading') } return translate[this.$i18n.locale] } } } $t(text)当然):

$t('text')

因此,在您的组件中,您必须导入它并将其添加为mixin:

data: function () {
   return {text: {en:'Book', de:'Buch', hu:'Könyv'}}
}