簡體   English   中英

訪問 string.xml Xamarin.Forms

[英]Access to string.xml Xamarin.Forms

我需要訪問 Resources 文件夾上的 string.xml 來制作我的多語言應用程序。

我正試圖找到一種方法來做到這一點。 應該很簡單,但我沒有找到並回答。 這是我的string.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <string name="Text">Text</string>
</resources>

我需要將屬性文本設置為我的按鈕。 我試試這個,但它不起作用。

<Button x:Name="btn" Text="@string/Text"/>

我還需要通過可編程性設置屬性。 索莫之類的東西:

btn.Text=Resources.GetString(Resource.String.Text);

我怎么能做到?

謝謝你。

不需要在 xamarin.forms 中使用這樣的資源文件。 查看這篇文章,這將幫助您:

  1. https://xamgirl.com/handle-multilingual-in-xamarin-forms-without-any-plugin/
  2. https://www.c-sharpcorner.com/article/xamarin-forms-multiligual/

你所做的,我們通常在 Xamarin.Android 項目中而不是在 Xamarin.Forms 中遵循。

你的 string.xml 文件

<resources>
    <string name="app_name">My Application</string>
    <string name="Text">Text</string>
</resources>

然后您可以在 XML 文件中添加一個按鈕,例如-

<Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/Text" />

如果您想在 Android 上使用 Strings.xml 執行此操作,請從 MainActivity 獲取文本值並將文本作為參數傳遞給 MainPage。

為不同的語言創建不同的 Strings.xml 文件。

默認值:值/Strings.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
 <string name="app_name">Default</string>
 <string name="taskcancel">Cancel</string>
</resources>

西班牙語:values-es/Strings.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
 <string name="app_name">Spanish</string>
 <string name="taskcancel">Cancelar</string>
</resources>

主要活動:

 public string STR { get; set; }
    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        Xamarin.Essentials.Platform.Init(this, savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        STR = Resources.GetText(Resource.String.taskcancel);
        LoadApplication(new App(STR));
    }

應用程序.xaml.cs:

   public App(string text)
    {
        InitializeComponent();

        MainPage = new MainPage(text);
    }

主頁:

    public MainPage(string text)
    {
        InitializeComponent();
        label.Text = text; 
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM