mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:47:45 +00:00
LibLocale: Add a method to convert LanguageID to a String
This commit is contained in:
parent
b6b5ddeb3b
commit
edfdade9e9
2 changed files with 19 additions and 10 deletions
|
@ -906,25 +906,31 @@ DeprecatedString resolve_most_likely_territory_alias(LanguageID const& language_
|
||||||
return aliases[0].to_deprecated_string();
|
return aliases[0].to_deprecated_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
DeprecatedString LanguageID::to_deprecated_string() const
|
ErrorOr<String> LanguageID::to_string() const
|
||||||
{
|
{
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
|
|
||||||
auto append_segment = [&](Optional<DeprecatedString> const& segment) {
|
auto append_segment = [&](Optional<DeprecatedString> const& segment) -> ErrorOr<void> {
|
||||||
if (!segment.has_value())
|
if (!segment.has_value())
|
||||||
return;
|
return {};
|
||||||
if (!builder.is_empty())
|
if (!builder.is_empty())
|
||||||
builder.append('-');
|
TRY(builder.try_append('-'));
|
||||||
builder.append(*segment);
|
TRY(builder.try_append(*segment));
|
||||||
|
return {};
|
||||||
};
|
};
|
||||||
|
|
||||||
append_segment(language);
|
TRY(append_segment(language));
|
||||||
append_segment(script);
|
TRY(append_segment(script));
|
||||||
append_segment(region);
|
TRY(append_segment(region));
|
||||||
for (auto const& variant : variants)
|
for (auto const& variant : variants)
|
||||||
append_segment(variant);
|
TRY(append_segment(variant));
|
||||||
|
|
||||||
return builder.build();
|
return builder.to_string();
|
||||||
|
}
|
||||||
|
|
||||||
|
DeprecatedString LanguageID::to_deprecated_string() const
|
||||||
|
{
|
||||||
|
return MUST(to_string()).to_deprecated_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
DeprecatedString LocaleID::to_deprecated_string() const
|
DeprecatedString LocaleID::to_deprecated_string() const
|
||||||
|
|
|
@ -8,7 +8,9 @@
|
||||||
|
|
||||||
#include <AK/CharacterTypes.h>
|
#include <AK/CharacterTypes.h>
|
||||||
#include <AK/DeprecatedString.h>
|
#include <AK/DeprecatedString.h>
|
||||||
|
#include <AK/Error.h>
|
||||||
#include <AK/Optional.h>
|
#include <AK/Optional.h>
|
||||||
|
#include <AK/String.h>
|
||||||
#include <AK/StringView.h>
|
#include <AK/StringView.h>
|
||||||
#include <AK/Variant.h>
|
#include <AK/Variant.h>
|
||||||
#include <AK/Vector.h>
|
#include <AK/Vector.h>
|
||||||
|
@ -17,6 +19,7 @@
|
||||||
namespace Locale {
|
namespace Locale {
|
||||||
|
|
||||||
struct LanguageID {
|
struct LanguageID {
|
||||||
|
ErrorOr<String> to_string() const;
|
||||||
DeprecatedString to_deprecated_string() const;
|
DeprecatedString to_deprecated_string() const;
|
||||||
bool operator==(LanguageID const&) const = default;
|
bool operator==(LanguageID const&) const = default;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue