Google Google本地翻译

时间:2018-12-10 07:32:21

标签: reactjs react-native reactive-programming react-native-android

我已经使用react-native开发了一个android移动应用。该应用程序的母语是英语,但我也希望将其设置为中文。因此,我的问题是如何将静态和提取的数据转换为中文。请分享解决方案。

2 个答案:

答案 0 :(得分:1)

是的,您可以做到。 要将应用程序语言更改为多语言应用程序,即还包括普通话。

  1. 对于静态内容/文本,请使用软件包react-native-i18n

链接:https://www.npmjs.com/package/react-native-i18n

  1. 对于动态内容/文本,请使用软件包google-translate-api

链接:https://www.npmjs.com/package/google-translate-api

I18n示例:

import I18n from 'react-native-i18n';

class Demo extends React.Component {
  render() {
    return <Text>{I18n.t('greeting')}</Text>;
  }
}

// Enable fallbacks if you want `en-US` and `en-GB` to fallback to `en`
I18n.fallbacks = true;

I18n.translations = {
  en: {
    greeting: 'Hi!',
  },
  fr: {
    greeting: 'Bonjour!',
  },
};

Google翻译示例:

From automatic language detection to English:

const translate = require('google-translate-api');

translate('Ik spreek Engels', {to: 'en'}).then(res => {
    console.log(res.text);
    //=> I speak English
    console.log(res.from.language.iso);
    //=> nl
}).catch(err => {
    console.error(err);
});

From English to Dutch with a typo:

translate('I spea Dutch!', {from: 'en', to: 'nl'}).then(res => {
    console.log(res.text);
    //=> Ik spreek Nederlands!
    console.log(res.from.text.autoCorrected);
    //=> true
    console.log(res.from.text.value);
    //=> I [speak] Dutch!
    console.log(res.from.text.didYouMean);
    //=> false
}).catch(err => {
    console.error(err);
});

希望它会有所帮助..! 谢谢

〜普拉兹(Praz)

答案 1 :(得分:0)

您需要以某种方式重构代码库。
首先,如果您的静态数据存储为硬编码,则需要进行重构。

我建议使用https://github.com/react-native-community/react-native-languages
您的灵感示例位于here

现在第二部分,您需要动态翻译。

首先,您需要使用上述软件包可以访问的当前用户语言。
然后使用google-translate-api之类的包即时翻译。