国际化

小于 1 分钟

国际化

Chat UIKit SDK UI 组件库提供国际化服务,默认提供中文和英文两种语言包。

例如:

export function App() {
  // 如果没有指定语言,则通过系统获取默认语言。
  const [language] = React.useState<LanguageCode>("zh-Hans");

  return (
    <Container options={{ appKey: "appKey" }} language={language}>
      {/* 添加子组件。 */}
    </Container>
  );
}

设置语言包

如果设置中文、英文以外的语言,需要提供指定语言的语言包,该语言包通过 onInitLanguageSet 的回调注册。

例如:

// 创建法语语言包
export function createStringSetFr(): StringSet {
  return {
    "this is test.": "c'est un test.",
    "This is test with ${0} and ${1}": (a: string, b: number) => {
      return `Ceci est un test avec ${a} et ${b}`;
    },
  };
}

export function App() {
  // 设置法语
  const [language] = React.useState<LanguageCode>("fr");
  const onInitLanguageSet = React.useCallback(() => {
    const ret = (language: LanguageCode): StringSet => {
      const d = createDefaultStringSet(language);
      if (language === "fr") {
        return createStringSetFr();
      }
      return d;
    };
    return ret;
  }, []);

  return (
    <Container
      options={{ appKey: "appKey" }}
      language={language}
      onInitLanguageSet={onInitLanguageSet}
    >
      {/* 添加子组件。 */}
    </Container>
  );
}