26 [[nodiscard]]
ssize_t plurality(
long long n,
ssize_t max)
const noexcept {
29 r = plurality_func(numeric_cast<int>(n % 1'000'000));
32 r =
static_cast<int>(n == 1);
34 return std::clamp(numeric_cast<ssize_t>(r),
ssize_t{0}, max - 1);
42 ttlet lock = std::scoped_lock(static_mutex);
44 ttlet i = languages.
find(tag);
45 if (i != languages.
end()) {
46 return i->second.get();
53 ttlet lock = std::scoped_lock(static_mutex);
57 auto tmp = std::make_unique<language>(tag);
71 for (ttlet &tag: tags) {
72 ttlet short_tag = split(tag,
"-").front();
74 if (ssize(prev_short_tag) != 0 && short_tag != prev_short_tag) {
84 prev_short_tag = short_tag;
87 if (ssize(prev_short_tag) != 0) {
96 ttlet lock = std::scoped_lock(static_mutex);
103 preferred_languages = tmp;
static std::vector< std::string > add_short_names(std::vector< std::string > tags) noexcept
Add short language names to the list of names.
Definition language.hpp:67