public void TestTextFlowLocalisation() { Container textFlowParent = null; TextFlowContainer textFlowContainer = null; AddStep("create text flow", () => Child = textFlowParent = new Container { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Origin = Anchor.Centre, Anchor = Anchor.Centre, Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Colour4.FromHex("#333") }, textFlowContainer = new TextFlowContainer(text => text.Font = FrameworkFont.Condensed) { RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Origin = Anchor.Centre, Anchor = Anchor.Centre, }, } }); AddStep("add text", () => { const string player = "spaceman_atlas"; var rankAchieved = 12_345_678.ToLocalisableString("N0"); var beatmap = new RomanisableString( "ELFENSJóN - ASH OF ROUGE (HeTo's Normal)", "ELFENSJoN - ASH OF ROUGE (HeTo's Normal)"); const string mode = "osu!"; textFlowContainer.AddText(new TranslatableString(rank, rank_default, player, rankAchieved, beatmap, mode)); textFlowContainer.NewParagraph(); textFlowContainer.AddText(new TranslatableString(rank_lost, rank_lost_default, player, beatmap, mode), text => { text.Font = FontUsage.Default; text.Colour = Colour4.Red; }); }); AddStep("change locale to en", () => configManager.SetValue(FrameworkSetting.Locale, "en")); AddStep("change locale to fr", () => configManager.SetValue(FrameworkSetting.Locale, "fr")); AddStep("change locale to tr", () => configManager.SetValue(FrameworkSetting.Locale, "tr")); AddToggleStep("toggle romanisation", romanised => configManager.SetValue(FrameworkSetting.ShowUnicode, romanised)); AddSliderStep("change text flow width", 0, 1f, 1f, width => { if (textFlowParent != null) { textFlowParent.Width = width; } }); }
public void TestLocalisableStringEqualsRomanisableString() { LocalisableString localisable = new RomanisableString(makeStringA, makeStringB); testEquals(true, localisable, new RomanisableString(makeStringA, makeStringB)); testEquals(false, localisable, new RomanisableString(makeStringB, makeStringA)); testEquals(false, localisable, makeStringA); testEquals(false, localisable, new TranslatableString(makeStringA, makeStringB)); }
public void TestRomanisableStringEqualsRomanisableString() { var str1 = new RomanisableString(makeStringA, makeStringB); var str2 = new RomanisableString(makeStringB, makeStringA); testEquals(true, str1, str1); testEquals(true, str1, new RomanisableString(makeStringA, makeStringB)); // Structural equality. testEquals(false, str1, str2); }
protected override void LoadComplete() { base.LoadComplete(); Model.PerformRead(m => { var metadata = m.Metadata; var title = new RomanisableString(metadata.TitleUnicode, metadata.Title); var artist = new RomanisableString(metadata.ArtistUnicode, metadata.Artist); titlePart = text.AddText(title, sprite => sprite.Font = OsuFont.GetFont(weight: FontWeight.Regular)); titlePart.DrawablePartsRecreated += _ => updateSelectionState(true); text.AddText(@" "); // to separate the title from the artist. text.AddText(artist, sprite => { sprite.Font = OsuFont.GetFont(size: 14, weight: FontWeight.Bold); sprite.Colour = colours.Gray9; sprite.Padding = new MarginPadding { Top = 1 }; }); SelectedSet.BindValueChanged(set => { bool newSelected = set.NewValue?.Equals(Model) == true; if (newSelected == selected) { return; } selected = newSelected; updateSelectionState(false); }); updateSelectionState(true); }); }
protected override void LoadAsyncComplete() { base.LoadAsyncComplete(); var title = new RomanisableString(Model.Metadata.TitleUnicode, Model.Metadata.Title); var artist = new RomanisableString(Model.Metadata.ArtistUnicode, Model.Metadata.Artist); titlePart = text.AddText(title, sprite => sprite.Font = OsuFont.GetFont(weight: FontWeight.Regular)); updateSelectionState(true); titlePart.DrawablePartsRecreated += _ => updateSelectionState(true); text.AddText(@" "); // to separate the title from the artist. text.AddText(artist, sprite => { sprite.Font = OsuFont.GetFont(size: 14, weight: FontWeight.Bold); sprite.Colour = colours.Gray9; sprite.Padding = new MarginPadding { Top = 1 }; }); }
private LocalisableString createArtistText() { var romanisableArtist = new RomanisableString(BeatmapSet.ArtistUnicode, BeatmapSet.Artist); return(BeatmapsetsStrings.ShowDetailsByArtist(romanisableArtist)); }