# react-native: useMessages URL: https://generaltranslation.com/zh/docs/react-native/api/strings/use-messages.mdx --- title: useMessages description: useMessages() 字符串翻译函数的 API 参考文档 --- {/* 自动生成:请勿直接编辑。请改为编辑 content/docs-templates/ 中的 template。 */} ## 概述 `useMessages` 函数是一个 Hook,用于在构建时翻译来自 `msg` 的已编码字符串。 ```jsx const m = useMessages();
{m(encodedString)}
; ```{m(encodedGreeting)}
; } ``` 注意:"Alice" 会被翻译成用户的首选语言。 ### 使用变量 [#variables] 你可以向编码后的字符串传递变量。 ```jsx copy import { msg, useMessages } from 'gt-react-native'; const encodedGreeting = msg('Hello, {name}!'); export default function TranslateGreeting() { const m = useMessages(); return ({m(encodedGreeting, { name: 'Bob' })}{' '} {/* 这将显示 "Hello, Bob!" */}
); } ``` ### `msg` 变量会覆盖 `m` 变量 当你同时向 `msg` 和 `m` 传入变量时,传给 `msg` 的变量会覆盖传给 `m` 的变量。 ```jsx copy import { msg, useMessages } from 'gt-react-native'; const encodedGreeting = msg('Hello, {name}!', { name: 'Alice' }); export default function TranslateGreeting() { const m = useMessages(); return{m(encodedGreeting, { name: 'Bob' })}
; } ``` 注意:这将显示 "Hello, Alice!"——变量不会在渲染时被覆盖。 ### 使用 ICU 消息格式 `gt-react-native` 支持 ICU 消息格式,因此你也可以对变量进行格式化。 ```jsx copy import { msg, useMessages } from 'gt-react-native'; const encodedMessage = msg( 'There are {count, plural, =0 {no items} =1 {one item} other {{count} items}} in the cart', { count: 10 } ); export default function TranslateGreeting() { const m = useMessages(); return{m(encodedMessage)}
; } ```{m(encodedGreeting)}
; } ``` *** ## 注意事项 * `useMessages` 函数是一个 Hook,用于翻译由 `msg` 编码的字符串。 * 通过 `useMessages` 翻译字符串会在 runtime 之前的构建时过程中完成 (开发环境除外) 。 ## 后续步骤 * 请参阅 [`msg`](/docs/react-native/api/strings/msg),了解如何将字符串编码为可翻译内容。