PluralRules.h 642 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * Copyright (c) 2022-2024, Tim Flynn <trflynn89@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/StringView.h>
  8. namespace Unicode {
  9. enum class PluralForm {
  10. Cardinal,
  11. Ordinal,
  12. };
  13. PluralForm plural_form_from_string(StringView);
  14. StringView plural_form_to_string(PluralForm);
  15. enum class PluralCategory {
  16. Other,
  17. Zero,
  18. One,
  19. Two,
  20. Few,
  21. Many,
  22. // https://unicode.org/reports/tr35/tr35-numbers.html#Explicit_0_1_rules
  23. ExactlyZero,
  24. ExactlyOne,
  25. };
  26. PluralCategory plural_category_from_string(StringView);
  27. StringView plural_category_to_string(PluralCategory);
  28. }