Detta är en serie korta noteringar som jag vill dela med mig efter att ha utvecklat Windows Phone appen TrafikTitt. Mer info om appen och ett index på noteringarna finns här.
Först vill jag säga att denna information har jag nästan plankat av ifrån Johan Lindfors blogg, i hans inlägg Lokalisera dina Windows Phone 7 applikationer. Där finns en grundlig genomgång av hur man gör.
Jag använder mig av resursfiler för att lagra alla strängar som skall visas i TrafikTitt. Jag skapar en huvudresursfil för standardspråket, Engelska, och en annan för Svenska. (Det är dessa två språk som jag stödjer.)
Varför sätter jag engelska som standard? Jo, när man lägger upp sin app i MarketPlace så skall man ange vilket som är de understödda språken för sin app. Där finns inte (än i alla fall) svenska med. Det gör att jag för enkelhetens skulle och också för att snabbare gå igenom certifieringsprocessen, väljer att ha ett av språken som stödjs.
Projektfilen måste också uppdateras för att registrera vilka språk som stödjs. Detta kan man inte göra i Visual Studio (det finns sätt har jag senare lärt mig, men kunde inte hitta det när jag skrev artikeln) utan måste öppna projektfilen i någon editor som kan läsa xml. Notepad går bra.
Lägg till de språk som skall stödjas via taggen SupportedCultures.
<SupportedCultures>en-US;sv-SE;</SupportedCultures>
Hur vet applikationen vilket språk som skall visas? Det gör den genom att läsa vilket språk som själva telefonen har. Ett problem med idag är att man inte kan ange svenska som ett av dessa. Man kan endast ange svenska för att ange hur formaten på datum och dylikt skall vara. För att låta vår app använda sig av denna information så lägger vi till en rad i App.cs konstruktor.
public App()
{
MyResources.Culture = System.Threading.Thread.CurrentThread.CurrentCulture;
}
Hur visar jag dessa strängar? Man kan göra det på flera sätt. Jag vill endast göra detta genom att förändra xaml-filerna. Detta gör man genom att skapa en klass som man sedan gör tillgänglig för att kunna bindas i xaml-filen. (Se Johans blogginlägg för hur detta görs.)
Naturligtvis går det också att nå detta via kod. Då ser det ut på följande sätt:
buttonFavorites.Text = MyResources.MainPage_Favorites;
Comments