[英]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.xml
和AppxManifest.xml
。
我該怎么做才能刪除此警告?
編輯:
如果我添加AppResources.en-US.resx
文件(目前我已將en-US
設置為Package.appxmanifest
默認語言),警告似乎消失了。 另外,我有一個AppResources.de.resx
和AppResources.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.