コード例 #1
0
        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;
                }
            });
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            });
        }
コード例 #5
0
        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
                };
            });
        }
コード例 #6
0
ファイル: BeatmapCardNormal.cs プロジェクト: Wieku/osu
        private LocalisableString createArtistText()
        {
            var romanisableArtist = new RomanisableString(BeatmapSet.ArtistUnicode, BeatmapSet.Artist);

            return(BeatmapsetsStrings.ShowDetailsByArtist(romanisableArtist));
        }