···12121313* Flappy Bird artwork by [Matthias Gall](https://github.com/digitalbreed/how-to-build-a-game-like-flappy-bird-with-xcode-and-sprite-kit).
1414* Number sprites by ahmadmanga, available on [opengameart.org](http://opengameart.org).
1515-* Arcade font by [Jakob Fischer](www.pizzadude.dk).
1515+* Arcade font by [Jakob Fischer](https://www.pizzadude.dk).
1616* Remaining artwork + sounds are from [osu! resources](https://github.com/ppy/osu-resources).
1717
···11+// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
22+// See the LICENCE file in the repository root for full licence text.
33+44+using osu.Framework.Localisation;
55+66+namespace osu.Framework.Extensions.LocalisationExtensions
77+{
88+ public static class LocalisableStringExtensions
99+ {
1010+ /// <summary>
1111+ /// Returns a <see cref="CaseTransformableString"/> with the specified underlying localisable string uppercased.
1212+ /// </summary>
1313+ /// <param name="str">The localisable string.</param>
1414+ /// <returns>A case transformable string with its localisable string uppercased.</returns>
1515+ public static CaseTransformableString ToUpper(this LocalisableString str) => new CaseTransformableString(str, Casing.UpperCase);
1616+1717+ /// <summary>
1818+ /// Returns a <see cref="CaseTransformableString"/> with the specified underlying string data uppercased.
1919+ /// </summary>
2020+ /// <param name="data">The string data.</param>
2121+ /// <returns>A case transformable string with its string data uppercased.</returns>
2222+ public static CaseTransformableString ToUpper(this ILocalisableStringData data) => new LocalisableString(data).ToUpper();
2323+2424+ /// <summary>
2525+ /// Returns a <see cref="LocalisableString"/> with the specified underlying localisable string transformed to title case.
2626+ /// </summary>
2727+ /// <param name="str">The localisable string.</param>
2828+ /// <returns>A case transformable string with its localisable string transformed to title case.</returns>
2929+ public static CaseTransformableString ToTitle(this LocalisableString str) => new CaseTransformableString(str, Casing.TitleCase);
3030+3131+ /// <summary>
3232+ /// Returns a <see cref="LocalisableString"/> with the specified underlying string data transformed to title case.
3333+ /// </summary>
3434+ /// <param name="data">The string data.</param>
3535+ /// <returns>A case transformable string with its string data transformed to title case.</returns>
3636+ public static CaseTransformableString ToTitle(this ILocalisableStringData data) => new LocalisableString(data).ToTitle();
3737+3838+ /// <summary>
3939+ /// Returns a <see cref="LocalisableString"/> with the specified underlying localisable string lowercased.
4040+ /// </summary>
4141+ /// <param name="str">The localisable string.</param>
4242+ /// <returns>A case transformable string with its localisable string lowercased.</returns>
4343+ public static CaseTransformableString ToLower(this LocalisableString str) => new CaseTransformableString(str, Casing.LowerCase);
4444+4545+ /// <summary>
4646+ /// Returns a <see cref="LocalisableString"/> with the specified underlying string data lowercased.
4747+ /// </summary>
4848+ /// <param name="data">The string data.</param>
4949+ /// <returns>A case transformable string with its string data lowercased.</returns>
5050+ public static CaseTransformableString ToLower(this ILocalisableStringData data) => new LocalisableString(data).ToLower();
5151+ }
5252+}
···11+// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
22+// See the LICENCE file in the repository root for full licence text.
33+44+using System;
55+66+namespace osu.Framework.Localisation
77+{
88+ public static class LocalisableStringExtensions
99+ {
1010+ /// <summary>
1111+ /// Returns a <see cref="LocalisableFormattableString"/> formatting the given <paramref name="value"/> with the specified <paramref name="format"/>.
1212+ /// </summary>
1313+ /// <param name="value">The value to format.</param>
1414+ /// <param name="format">The format string.</param>
1515+ public static LocalisableFormattableString ToLocalisableString(this IFormattable value, string format) => new LocalisableFormattableString(value, format);
1616+ }
1717+}