Googlade lite och hittade CultureAndRegionInfoBuilder-klassen som MS gömt i dll:en sysglobl.dll men som tillhör namespacet System.Globalization. Så för att kunna använda den måste du referera sysglobl.dll.
Skapade en liten konsolapp:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
namespace CultureCreator
{
class Program
{
static void Main(string[]
args)
{
new
Program(args);
}
public
Program(string[] args)
{
if
(args == null || args.Length == 0)
{
Console.WriteLine("Error: No args supplied.");
return;
}
try
{
if
(args[0].ToLower() == "register")
{
CreateCulture();
Console.WriteLine("Culture created.");
}
else
if (args[0].ToLower() == "unregister")
{
RemoveCulture();
Console.WriteLine("Culture removed.");
}
}
catch
(Exception)
{
Console.WriteLine("Could not perform the operation, make sure you are
running the script as an administrator!");
}
}
public void CreateCulture()
{
if
(CultureInfo.GetCultures(CultureTypes.AllCultures).Any(c => c.Name == "vl-SE"))
{
Console.WriteLine("The culture has already been created!");
return;
}
CultureAndRegionInfoBuilder cib = null;
cib = new
CultureAndRegionInfoBuilder("vl-SE",
CultureAndRegionModifiers.None);
CultureInfo
ci = new CultureInfo("sv-SE");
cib.LoadDataFromCultureInfo(ci);
RegionInfo
ri = new RegionInfo("SE");
cib.LoadDataFromRegionInfo(ri);
cib.CultureEnglishName = "Wermlandish (Sweden)";
cib.CultureNativeName
= "värmländska (Sverige)";
cib.Register();
}
public void RemoveCulture()
{
CultureAndRegionInfoBuilder.Unregister("vl-SE");
}
}
}
Hoppar in i Orchards dashboard och kollar lista över tillgängliga språk:
Jajjamen! Där satt 'an!
Skapar en översättning av en text på min sida:
Kollar att min språklistare på sidan fångar upp det tillagda språket:
Yes, ser gôrfint ut!
Nu testar vi att välja språket!
Vackert! Funkar antagligen precis lika fint i andra CMS:er.
Ps.:
Upptäckte att det inte var lika lätt att bli av med det vackra språket i Orchard (antar att Orchard fäste sig vid det). Det fanns nämligen ingen removeknapp för detta språk i GUI:t. Därför får man först städa bort gjorda översättningar, sedan kika in i databasen och köra:
DELETE FROM dbo.Orchard_Framework_CultureRecord WHERE Culture = 'vl-SE'
Om detta beror på felaktigheter i min registrerade Culture eller på någon Orchard-bugg låter jag vara osagt :)
Ps.:
Upptäckte att det inte var lika lätt att bli av med det vackra språket i Orchard (antar att Orchard fäste sig vid det). Det fanns nämligen ingen removeknapp för detta språk i GUI:t. Därför får man först städa bort gjorda översättningar, sedan kika in i databasen och köra:
DELETE FROM dbo.Orchard_Framework_CultureRecord WHERE Culture = 'vl-SE'
Om detta beror på felaktigheter i min registrerade Culture eller på någon Orchard-bugg låter jag vara osagt :)
Inga kommentarer:
Skicka en kommentar