首页 文章

反应本机谷歌翻译

提问于
浏览
0

我使用react-native开发了一个Android移动应用程序 . 我的应用程序的母语是英语,但我也希望用普通话提供 . 所以我的问题是如何将静态和获取的数据转换为普通话 . 请分享一个解决方案 .

2 回答

  • 0

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

    • 对于静态内容/文本使用包 react-native-i18n

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

    • 对于动态内容/文本,请使用包 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!',
      },
    };
    

    谷歌翻译示例:

    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

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

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

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

    首先,您需要使用前面提到的包可访问的当前用户语言 .
    然后使用像google-translate-api这样的包来动态翻译 .

相关问题