簡體   English   中英

Xamarin.Forms:UWP應用程序的本地化

[英]Xamarin.Forms: Localization of the UWP app

如果我在UWP設備上運行我的應用程序,我會在“ Output窗口中收到以下警告:

MakePRI:警告0xdef00522:為語言'en,de'找到的資源,但找不到默認語言的資源:'de-DE,en-US'。 使用默認語言更改默認語言或限定資源。 http://go.microsoft.com/fwlink/?LinkId=231899

不知道這是否相關,但我也知道

1> C:\\ Program Files(x86)\\ MSBuild \\ Microsoft \\ VisualStudio \\ v14.0 \\ AppxPackage \\ Microsoft.AppXPackage.Targets(2459,5):警告:APPX4001:構建屬性AppxBundlePlatforms未明確設置並基於計算目前正在建築。 使用“創建應用程序包”向導或編輯項目文件進行設置。

這個頁面說明我有語言特定的資源,我沒有用語言標簽限定。 我怎樣才能知道這些資源是哪些資源?

我在Assets文件夾中有圖像,但它們與語言無關。 此外,我已將Package.appxmanifest的默認語言設置為de-DE 如果我從警告中搜索語言縮寫,我只能在Debug輸出文件夾中找到priconfig.xmlAppxManifest.xml

我該怎么做才能刪除此警告?

編輯:

如果我添加AppResources.en-US.resx文件(目前我已將en-US設置為Package.appxmanifest默認語言),警告似乎消失了。 另外,我有一個AppResources.de.resxAppResources.resx的文件(應該是en )。 但是為什么示例項目不需要這樣的文件,盡管應該有相同的設置? 我錯過了什么?

只是為了擴展Nico Zhu - MSFT的答案,如果您使用.Net Standard,則沒有assemblyInfo.cs文件,因為所有內容都存儲在csproj文件中。 因此,只需轉到共享項目的屬性,將Project中性語言更改為resx默認文件。 或者您可以右鍵單擊項目並編輯項目和下面的行。

對我來說問題是,在從PCL轉換為Net Standard之后,突然UWP應用程序沒有選擇默認資源文件en-US。 我認識到因為我在assmeblyInfo.cs中有這個設置,因為它被刪除了,它沒有用。 但不知何故,它適用於Android項目。

  <PropertyGroup>
     <NeutralLanguage>en-US</NeutralLanguage>
  </PropertyGroup>

在此輸入圖像描述

如果我添加AppResources.en-US.resx文件(目前我已將en-US設置為Package.appxmanifest中的默認語言),警告似乎消失了。 另外,我有一個AppResources.de.resx和AppResources.resx的文件(應該是en)。 但是為什么示例項目不需要這樣的文件,盡管應該有相同的設置? 我錯過了什么?

如你所說, AppResources.resx是en。 您可以展開可移植類庫(PCL)項目中的Properties節點,然后雙擊AssemblyInfo.cs文件。 將以下行添加到文件中以將中性資源匯編語言設置為英語:

[assembly: NeutralResourcesLanguage("en")]

這會通知資源管理器應用程序的默認文化,因此確保當應用程序在英語語言環境中運行時,將顯示語言中性RESX文件(AppResources.resx)中定義的字符串。

您已在Package.appxmanifest中將en-US設置為默認語言,但是沒有與之對應的此類文件。 所以它會發出警告。

示例項目的默認語言是en-US ,並且沒有與之對應的此類文件。 它也向我發出同樣的警告。 如果將默認語言修改為en ,警告將消失。 因為它已將AppResources.resx設置為AssemblyInfo.cs文件中的en

你可以參考AssemblyInfo支持的語言

暫無
暫無

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

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