Javascript 如何使用react-native-i18n转换数组?

Javascript 如何使用react-native-i18n转换数组?,javascript,react-native,Javascript,React Native,我的翻译是这样的: import React, { PropTypes } from 'react'; import { View, Image } from 'react-native'; import i18n from 'react-native-i18n'; import ReactNativeCalendar from 'react-native-calendar'; import translations from '../../translations'; import style

我的翻译是这样的:

import React, { PropTypes } from 'react';
import { View, Image } from 'react-native';
import i18n from 'react-native-i18n';
import ReactNativeCalendar from 'react-native-calendar';
import translations from '../../translations';
import styles from './styles';

const dayHeadings = i18n.t('days');
en.json

{
   "Welcome": "Welcome to react native",
   "days": ["Sun","Mon","Tue","Wed","Thur","Fri","Sat"]
}
我的页面是这样的:

import React, { PropTypes } from 'react';
import { View, Image } from 'react-native';
import i18n from 'react-native-i18n';
import ReactNativeCalendar from 'react-native-calendar';
import translations from '../../translations';
import styles from './styles';

const dayHeadings = i18n.t('days');
[……]

const日历=(道具)=>{
控制台日志(日标题);
返回(
);
};
DayHeaders应该是一个翻译字符串数组,但是我得到

缺少“en.days”翻译


从控制台。奇怪的是,如果我保存翻译并触发热重新加载,翻译工作就会很好。文件中也有翻译

最好的方法是声明:

{
   "Welcome": "Welcome to React Native",
   "days": {
    "sun": "Sun",
    "mon": "Mon",
    "tue": "Tue",
    "wed": "Wed",
    "thu": "Thur",
    "fri": "Fri",
    "sat": "Sat"
  }
}
然后参考它:

I18n.t(['days', 'mon']);
假设要显示所有日期(例如在日历中),则可以执行以下操作:

const dayKeys=['sun','mon','tue','wed','thu','fri','sat'];
...
render(){
返回(
{dayKeys.map((key)=>{I18n.t(['days',key])}
)
}

在我的情况下,它不起作用,我不知道确切原因,但对于最新的react native 0.50+,您可以这样使用它。{dayKeys.map((key)=>{I18n.t('days.${key}})}
const dayKeys = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
...
render() {
  return (
    <View>
    {dayKeys.map((key) => <Text>{I18n.t(['days', key])}</Text>)}
    </View>
  )
}