public Create ( |
||
languageSubtag | The language subtag. | |
scriptSubtag | The script subtag. | |
regionSubtag | The region subtag. | |
variantSubtag | The variant subtag. | |
Résultat | IWritingSystem |
public void GetValidLangCodeForNewLang() { string storePath = PrepareTempStore("Store"); string globalStorePath = PrepareTempStore("GlobalStore"); EnsureDirectoryIsEmpty(storePath); EnsureDirectoryIsEmpty(globalStorePath); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath, globalStore), globalStore); Assert.AreEqual("qip", wsManager.GetValidLangTagForNewLang("Qipkey")); Assert.AreEqual("sn", wsManager.GetValidLangTagForNewLang("Sn")); Assert.AreEqual("eba", wsManager.GetValidLangTagForNewLang("\u00CBbashlish")); // \u00CB == E with diacritic Assert.AreEqual("eee", wsManager.GetValidLangTagForNewLang("\u00CB\u00CB\u00CBlish")); // \u00CB == E with diacritic Assert.AreEqual("aaa", wsManager.GetValidLangTagForNewLang("U")); LanguageSubtag subtag = new LanguageSubtag("qip", "Qipkey", true, null); IWritingSystem newWs = wsManager.Create(subtag, null, null, null); wsManager.Set(newWs); Assert.AreEqual("aaa", wsManager.GetValidLangTagForNewLang("Qipsing"), "code for 'qip' should already be taken"); subtag = new LanguageSubtag("aaa", "Qipsing", true, null); newWs = wsManager.Create(subtag, null, null, null); wsManager.Set(newWs); Assert.AreEqual("aab", wsManager.GetValidLangTagForNewLang("Qipwest"), "code for 'qip' should already be taken twice"); // ENHANCE: Ideally, we would want to test incrementing the middle and first character, // but that would require at least 677 (26^2 + 1) writing systems be created. }
public void InterpretChrp() { var wsManager = new PalasoWritingSystemManager(); IWritingSystem ws = wsManager.Create("en-US"); var chrp = new LgCharRenderProps { ws = ws.Handle, szFaceName = new ushort[32], dympHeight = 10000, ssv = (int)FwSuperscriptVal.kssvSuper }; MarshalEx.StringToUShort("<default font>", chrp.szFaceName); ws.InterpretChrp(ref chrp); Assert.AreEqual(ws.DefaultFontName, MarshalEx.UShortToString(chrp.szFaceName)); Assert.AreEqual(10000 / 3, chrp.dympOffset); Assert.AreEqual((10000 * 2) / 3, chrp.dympHeight); Assert.AreEqual((int)FwSuperscriptVal.kssvOff, chrp.ssv); chrp.ssv = (int)FwSuperscriptVal.kssvSub; chrp.dympHeight = 10000; chrp.dympOffset = 0; ws.InterpretChrp(ref chrp); Assert.AreEqual(-(10000 / 5), chrp.dympOffset); Assert.AreEqual((10000 * 2) / 3, chrp.dympHeight); Assert.AreEqual((int)FwSuperscriptVal.kssvOff, chrp.ssv); wsManager.Save(); }
public void Create() { var wsManager = new PalasoWritingSystemManager(); IWritingSystem enWs = wsManager.Create("en-Latn-US-fonipa"); Assert.AreEqual("Eng", enWs.Abbreviation); Assert.AreEqual("English", enWs.LanguageSubtag.Name); Assert.AreEqual("Latin", enWs.ScriptSubtag.Name); Assert.AreEqual("United States", enWs.RegionSubtag.Name); Assert.AreEqual("International Phonetic Alphabet", enWs.VariantSubtag.Name); Assert.AreEqual(null, ((ILegacyWritingSystemDefinition)enWs).WindowsLcid); IWritingSystem chWs = wsManager.Create("zh-CN"); Assert.AreEqual("Man", chWs.Abbreviation); Assert.AreEqual("Mandarin Chinese", chWs.LanguageSubtag.Name); Assert.AreEqual("China", chWs.RegionSubtag.Name); Assert.AreEqual("Charis SIL", chWs.DefaultFontName); Assert.AreEqual(WritingSystemDefinition.SortRulesType.OtherLanguage, chWs.SortUsing); Assert.AreEqual("zh-CN", chWs.SortRules); wsManager.Save(); }
public void Create() { var wsManager = new PalasoWritingSystemManager(); IWritingSystem enWs = wsManager.Create("en-Latn-US-fonipa"); Assert.AreEqual("Eng", enWs.Abbreviation); Assert.AreEqual("English", enWs.LanguageSubtag.Name); Assert.AreEqual("Latin", enWs.ScriptSubtag.Name); Assert.AreEqual("United States", enWs.RegionSubtag.Name); Assert.AreEqual("International Phonetic Alphabet", enWs.VariantSubtag.Name); // On Linux InstalledInputLanguages or DefaultInputLanguage doesn't do anything sensible. // see: https://bugzilla.novell.com/show_bug.cgi?id=613014 Assert.AreEqual(MiscUtils.IsUnix ? 0x409 : InputLanguage.DefaultInputLanguage.Culture.LCID, enWs.LCID); IWritingSystem chWs = wsManager.Create("zh-CN"); Assert.AreEqual("Man", chWs.Abbreviation); Assert.AreEqual("Mandarin Chinese", chWs.LanguageSubtag.Name); Assert.AreEqual("China", chWs.RegionSubtag.Name); Assert.AreEqual("Charis SIL", chWs.DefaultFontName); Assert.AreEqual(WritingSystemDefinition.SortRulesType.OtherLanguage, chWs.SortUsing); Assert.AreEqual("zh-CN", chWs.SortRules); wsManager.Save(); }
public void LanguageSubtag_newWS() { var wsManager = new PalasoWritingSystemManager(); using (var langSetup = new LanguageSetup()) { langSetup.WritingSystemManager = wsManager; langSetup.StartedInModifyState = false; langSetup.LanguageName = "Monkey"; LanguageSubtag subtag = langSetup.LanguageSubtag; Assert.AreEqual("mon", subtag.Code); LanguageSubtag newSubtag = new LanguageSubtag("mon", "Moniker", true, null); IWritingSystem newWs = wsManager.Create(newSubtag, null, null, null); wsManager.Set(newWs); subtag = langSetup.LanguageSubtag; Assert.AreEqual("aaa", subtag.Code, "Language code 'mon' should already be in use"); } }
public void CreateAudioWritingSystemVariantFirst() { string storePath = PrepareTempStore("Store"); string globalStorePath = PrepareTempStore("GlobalStore"); EnsureDirectoryIsEmpty(storePath); EnsureDirectoryIsEmpty(globalStorePath); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath, globalStore), globalStore); IWritingSystem newWs = wsManager.Create(new LanguageSubtag("qaa", "Unknown", true, null), null, null, null); Assert.DoesNotThrow(() => { newWs.VariantSubtag = new VariantSubtag("x-audio", "Audio", false, null); newWs.ScriptSubtag = new ScriptSubtag("Zxxx", "Audio", false); }); }
public void CreateAudioWritingSystemVariantFirst() { string storePath = PrepareTempStore("Store"); string globalStorePath = PrepareTempStore("GlobalStore"); EnsureDirectoryIsEmpty(storePath); EnsureDirectoryIsEmpty(globalStorePath); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath, globalStore), globalStore); IWritingSystem newWs = wsManager.Create(new LanguageSubtag("qaa", "Unknown", true, null), null, null, null); Assert.DoesNotThrow(() => { newWs.VariantSubtag = new VariantSubtag("x-audio", "Audio", false, null); newWs.ScriptSubtag = new ScriptSubtag("Zxxx", "Audio", false); }); }
public void GetValidLangCodeForNewLang() { string storePath = PrepareTempStore("Store"); string globalStorePath = PrepareTempStore("GlobalStore"); EnsureDirectoryIsEmpty(storePath); EnsureDirectoryIsEmpty(globalStorePath); var globalStore = new GlobalFileWritingSystemStore(globalStorePath); var wsManager = new PalasoWritingSystemManager( new LocalFileWritingSystemStore(storePath, globalStore), globalStore); Assert.AreEqual("qip", wsManager.GetValidLangTagForNewLang("Qipkey")); Assert.AreEqual("sn", wsManager.GetValidLangTagForNewLang("Sn")); Assert.AreEqual("eba", wsManager.GetValidLangTagForNewLang("\u00CBbashlish")); // \u00CB == E with diacritic Assert.AreEqual("eee", wsManager.GetValidLangTagForNewLang("\u00CB\u00CB\u00CBlish")); // \u00CB == E with diacritic Assert.AreEqual("aaa", wsManager.GetValidLangTagForNewLang("U")); LanguageSubtag subtag = new LanguageSubtag("qip", "Qipkey", true, null); IWritingSystem newWs = wsManager.Create(subtag, null, null, null); wsManager.Set(newWs); Assert.AreEqual("aaa", wsManager.GetValidLangTagForNewLang("Qipsing"), "code for 'qip' should already be taken"); subtag = new LanguageSubtag("aaa", "Qipsing", true, null); newWs = wsManager.Create(subtag, null, null, null); wsManager.Set(newWs); Assert.AreEqual("aab", wsManager.GetValidLangTagForNewLang("Qipwest"), "code for 'qip' should already be taken twice"); // ENHANCE: Ideally, we would want to test incrementing the middle and first character, // but that would require at least 677 (26^2 + 1) writing systems be created. }
public void InterpretChrp() { var wsManager = new PalasoWritingSystemManager(); IWritingSystem ws = wsManager.Create("en-US"); var chrp = new LgCharRenderProps { ws = ws.Handle, szFaceName = new ushort[32], dympHeight = 10000, ssv = (int) FwSuperscriptVal.kssvSuper }; MarshalEx.StringToUShort("<default font>", chrp.szFaceName); ws.InterpretChrp(ref chrp); Assert.AreEqual(ws.DefaultFontName, MarshalEx.UShortToString(chrp.szFaceName)); Assert.AreEqual(10000 / 3, chrp.dympOffset); Assert.AreEqual((10000 * 2) / 3, chrp.dympHeight); Assert.AreEqual((int) FwSuperscriptVal.kssvOff, chrp.ssv); chrp.ssv = (int) FwSuperscriptVal.kssvSub; chrp.dympHeight = 10000; chrp.dympOffset = 0; ws.InterpretChrp(ref chrp); Assert.AreEqual(-(10000 / 5), chrp.dympOffset); Assert.AreEqual((10000 * 2) / 3, chrp.dympHeight); Assert.AreEqual((int)FwSuperscriptVal.kssvOff, chrp.ssv); wsManager.Save(); }
public void Create() { var wsManager = new PalasoWritingSystemManager(); IWritingSystem enWs = wsManager.Create("en-Latn-US-fonipa"); Assert.AreEqual("Eng", enWs.Abbreviation); Assert.AreEqual("English", enWs.LanguageSubtag.Name); Assert.AreEqual("Latin", enWs.ScriptSubtag.Name); Assert.AreEqual("United States", enWs.RegionSubtag.Name); Assert.AreEqual("International Phonetic Alphabet", enWs.VariantSubtag.Name); Assert.AreEqual(null, ((ILegacyWritingSystemDefinition)enWs).WindowsLcid); IWritingSystem chWs = wsManager.Create("zh-CN"); Assert.AreEqual("Man", chWs.Abbreviation); Assert.AreEqual("Mandarin Chinese", chWs.LanguageSubtag.Name); Assert.AreEqual("China", chWs.RegionSubtag.Name); Assert.AreEqual("Charis SIL", chWs.DefaultFontName); Assert.AreEqual(WritingSystemDefinition.SortRulesType.OtherLanguage, chWs.SortUsing); Assert.AreEqual("zh-CN", chWs.SortRules); wsManager.Save(); }