\n\n\n```\n\n \n \n\nTo utilize gender-based content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:\n\n```svelte fileName=\"**/*.svelte\"\n\n\n
\n

{$content.myGender(\"male\")}

\n

{$content.myGender(\"female\")}

\n
\n```\n\n
\n \n\nTo utilize gender-based content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nimport type { FC } from \"preact\";\nimport { useIntlayer } from \"preact-intlayer\";\n\nconst GenderComponent: FC = () => {\n const { myGender } = useIntlayer(\"my_key\");\n\n return (\n
\n

{myGender(\"male\")}

\n

{myGender(\"female\")}

\n
\n );\n};\n\nexport default GenderComponent;\n```\n\n
\n \n\nTo utilize gender-based content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nimport type { Component } from \"solid-js\";\nimport { useIntlayer } from \"solid-intlayer\";\n\nconst GenderComponent: Component = () => {\n const { myGender } = useIntlayer(\"my_key\");\n\n return (\n
\n

{myGender(\"male\")}

\n

{myGender(\"female\")}

\n
\n );\n};\n\nexport default GenderComponent;\n```\n\n
\n \n\nTo utilize gender-based content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```typescript fileName=\"app.component.ts\" codeFormat=\"typescript\"\nimport { Component } from \"@angular/core\";\nimport { useIntlayer } from \"angular-intlayer\";\n\n@Component({\n selector: \"app-gender\",\n template: `\n
\n

{{ content().myGender(\"male\") }}

\n

{{ content().myGender(\"female\") }}

\n
\n `,\n})\nexport class GenderComponent {\n content = useIntlayer(\"my_key\");\n}\n```\n\n
\n \n\nTo utilize gender-based content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```typescript fileName=\"**/*.ts\" codeFormat={[\"typescript\", \"esm\"]}\nimport { installIntlayer, useIntlayer } from \"vanilla-intlayer\";\n\ninstallIntlayer();\n\nconst content = useIntlayer(\"my_key\").onChange((newContent) => {\n document.getElementById(\"gender-male\")!.textContent =\n newContent.myGender(\"male\");\n document.getElementById(\"gender-female\")!.textContent =\n newContent.myGender(\"female\");\n});\n\n// Initial render\ndocument.getElementById(\"gender-male\")!.textContent = content.myGender(\"male\");\ndocument.getElementById(\"gender-female\")!.textContent =\n content.myGender(\"female\");\n```\n\n \n\n\n## 附加资源\n\n有关配置和使用的更详细信息,请参阅以下资源:\n\n- [Intlayer CLI 文档](/zh/doc/concept/cli)\n- [React Intlayer 文档](/zh/doc/environment/create-react-app)\n- [Next Intlayer 文档](/zh/doc/environment/nextjs/15)\n\n这些资源提供了关于在各种环境和框架中设置和使用 Intlayer 的更多见解。\n","description":"了解如何在 Intlayer 中使用基于性别的内容,根据性别动态显示内容。按照本指南高效地在项目中实现性别特定内容。","url":"https://intlayer.org/zh/doc/concept/content/gender","datePublished":"2025-07-27","dateModified":"2025-07-27","version":"5.7.2","keywords":"基于性别的内容, 动态渲染, 文档, Intlayer, Next.js, JavaScript, React","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"开发者,内容经理"}}
    作者:
    Creation:2025-07-27Last update:2025-07-27

    基于性别的内容 / Intlayer 中的性别

    性别的工作原理

    在 Intlayer 中,基于性别的内容是通过 gender 函数实现的,该函数将特定的性别值('male','female')映射到相应的内容。此方法使您能够根据给定的性别动态选择内容。当与 React Intlayer 或 Next Intlayer 集成时,会根据运行时提供的性别自动选择适当的内容。

    设置基于性别的内容

    要在您的 Intlayer 项目中设置基于性别的内容,请创建一个包含性别特定定义的内容模块。以下是各种格式的示例。

    **/*.content.ts
    import { gender, type Dictionary } from "intlayer";
    
    const myGenderContent = {
      key: "my_key",
      content: {
        myGender: gender({
          male: "针对男性用户的内容",
          female: "针对女性用户的内容",
          fallback: "未指定性别时的内容", // 可选
        }),
      },
    } satisfies Dictionary;
    
    export default myGenderContent;
    如果未声明回退内容,当性别未指定或不匹配任何定义的性别时,将使用最后声明的键作为回退内容。

    在 React Intlayer 中使用基于性别的内容

    To utilize gender-based content within a React component, import and use the useIntlayer hook from the react-intlayer package. This hook fetches the content for the specified key and allows you to pass in a gender to select the appropriate output.

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const GenderComponent: FC = () => {
    const { myGender } = useIntlayer("my_key");
    
    return (
      <div>
        <p>
          {
            /* Output: my content for male users */
            myGender("male")
          }
        </p>
        <p>
          {
            /* Output: my content for female users */
            myGender("female")
          }
        </p>
        <p>
          {
            /* Output: my content for male users */
            myGender("m")
          }
        </p>
        <p>
          {
            /* Output: my content for female users */
            myGender("f")
          }
        </p>
        <p>
          {
            /* Output: my content when gender is not specified */
            myGender("")
          }
        </p>
        <p>
          {
            /* Output: my content when gender is not specified */
            myGender(undefined)
          }
        </p>
      </div>
    );
    };
    
    export default GenderComponent;

    附加资源

    有关配置和使用的更详细信息,请参阅以下资源:

    这些资源提供了关于在各种环境和框架中设置和使用 Intlayer 的更多见解。