如何使用flutter本地化启动器中显示的应用程序名称?

Vin*_*ent 13 android dart flutter

如何本地化启动器中显示的应用程序名称?

比如“Play Store”,中文就是“Play ??”。谢谢。

我试着android\app\src\main\AndroidManifest.xml像这样修改:

android:label="@string/app_name"
Run Code Online (Sandbox Code Playgroud)

并创建文件

values-zh/strings.xml
values-en/strings.xml
Run Code Online (Sandbox Code Playgroud)

例子:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">App name in different language</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

但是,仅当系统语言更改时,应用程序名称才会更改。这是 Android 中的常见问题(或已知错误?)?

在windows中,当应用程序语言改变时,应用程序名称会立即改变。

所以,我真正想要的是,当我的应用程序中的语言发生变化时,启动器中的应用程序名称也会发生变化,而忽略系统语言。

在此处输入图片说明

Moa*_*waf 13

这是在 Flutter 中本地化(国际化)启动器应用程序名称的秘诀

\n

对于安卓:

\n
    \n
  1. 导航到以下路径:android\\app\\src\\main\\res
  2. \n
  3. 您应该找到一个名为的文件夹,values如果它不存在,请创建一个,该文件夹将用于默认区域设置(语言)。
  4. \n
  5. strings.xml添加一个在文件夹内命名的文件values,代码如下:
  6. \n
\n
<?xml version="1.0" encoding="utf-8"?>\n<resources>\n    <string name="appName">your_app_name</string>\n</resources>\n
Run Code Online (Sandbox Code Playgroud)\n

注意:如果该文件已经存在,则只需将appName密钥添加到其中即可,即这一行:

\n
<string name="appName">your_app_name</string>\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. appName使用默认区域设置(语言)的应用程序名称更改键的值。
  2. \n
  3. 复制每个区域设置的values文件夹及其包含的strings.xml文件,例如,如果您的默认区域设置是English (en)并且您想要添加Arabic (ar)Spanish (es)则该文件夹将具有以下文件夹结构res
  4. \n
\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80values\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 strings.xml\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80values-ar\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 strings.xml\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80values-es\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 strings.xml\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80 ...\n
Run Code Online (Sandbox Code Playgroud)\n

注意:您不必复制文件中的所有键和值strings.xml,如果您有其他不想本地化的键,那么您可以在每个区域设置中忽略它们,只包含您想要的键本地化,例如在本例中appName

\n
    \n
  1. 对于每个区域设置,转到其文件夹并更改文件内values键的值。appNamestrings.xml
  2. \n
  3. 导航到AndroidManifest以下路径中的文件:并将标签内android\\app\\src\\main\\AndroidManifest.xml的值更改为。android:labelapplicationandroid:label="@string/appName"
  4. \n
  5. 完毕
  6. \n
\n
\n

对于IOS:

\n
    \n
  1. 执行此答案中的所有步骤。
  2. \n
  3. 您必须本地化的唯一键是CFBundleName应用程序的启动器名称。
  4. \n
  5. 完毕
  6. \n
\n


sos*_*ite 7

Android 应用程序的android:labelinAndroidManifest.xml是一个固定的资源引用,它绑定到系统语言。

因此,如您所见,根据提供替代资源,您只能使用配置限定符名称(values-en、-zh、-large、-land 等)。