Pyrogenesis
trunk
source
third_party
tinygettext
include
tinygettext
plural_forms.hpp
Go to the documentation of this file.
1
// tinygettext - A gettext replacement that works directly on .po files
2
// Copyright (c) 2006 Ingo Ruhnke <grumbel@gmail.com>
3
//
4
// This software is provided 'as-is', without any express or implied
5
// warranty. In no event will the authors be held liable for any damages
6
// arising from the use of this software.
7
//
8
// Permission is granted to anyone to use this software for any purpose,
9
// including commercial applications, and to alter it and redistribute it
10
// freely, subject to the following restrictions:
11
//
12
// 1. The origin of this software must not be misrepresented; you must not
13
// claim that you wrote the original software. If you use this software
14
// in a product, an acknowledgement in the product documentation would be
15
// appreciated but is not required.
16
// 2. Altered source versions must be plainly marked as such, and must not be
17
// misrepresented as being the original software.
18
// 3. This notice may not be removed or altered from any source distribution.
19
20
#ifndef HEADER_TINYGETTEXT_PLURAL_FORMS_HPP
21
#define HEADER_TINYGETTEXT_PLURAL_FORMS_HPP
22
23
#include <string>
24
25
namespace
tinygettext
{
26
27
typedef
unsigned
int (*
PluralFunc
)(
int
n);
28
29
class
PluralForms
30
{
31
private
:
32
unsigned
int
nplural
;
33
PluralFunc
plural
;
34
35
public
:
36
static
PluralForms
from_string
(
const
std::string& str);
37
38
PluralForms
()
39
:
nplural
(),
40
plural
()
41
{}
42
43
PluralForms
(
unsigned
int
nplural_,
PluralFunc
plural_)
44
:
nplural
(nplural_),
45
plural
(plural_)
46
{}
47
48
unsigned
int
get_nplural
()
const
{
return
nplural
; }
49
unsigned
int
get_plural
(
int
n)
const
{
if
(
plural
)
return
plural
(n);
else
return
0; }
50
51
bool
operator==
(
const
PluralForms
& other)
const
{
return
nplural
== other.
nplural
&&
plural
== other.
plural
; }
52
bool
operator!=
(
const
PluralForms
& other)
const
{
return
!(*
this
== other); }
53
54
explicit
operator
bool()
const
{
55
return
plural
!=
nullptr
;
56
}
57
};
58
59
}
// namespace tinygettext
60
61
#endif
62
63
/* EOF */
tinygettext::PluralForms
Definition:
plural_forms.hpp:30
tinygettext::PluralForms::PluralForms
PluralForms()
Definition:
plural_forms.hpp:38
tinygettext::PluralForms::operator!=
bool operator!=(const PluralForms &other) const
Definition:
plural_forms.hpp:52
tinygettext::PluralForms::get_nplural
unsigned int get_nplural() const
Definition:
plural_forms.hpp:48
tinygettext::PluralForms::plural
PluralFunc plural
Definition:
plural_forms.hpp:33
tinygettext::PluralForms::nplural
unsigned int nplural
Definition:
plural_forms.hpp:32
tinygettext::PluralForms::from_string
static PluralForms from_string(const std::string &str)
Definition:
plural_forms.cpp:67
tinygettext::PluralForms::PluralForms
PluralForms(unsigned int nplural_, PluralFunc plural_)
Definition:
plural_forms.hpp:43
tinygettext::PluralForms::operator==
bool operator==(const PluralForms &other) const
Definition:
plural_forms.hpp:51
tinygettext::PluralForms::get_plural
unsigned int get_plural(int n) const
Definition:
plural_forms.hpp:49
tinygettext
Definition:
L10n.h:36
tinygettext::PluralFunc
unsigned int(* PluralFunc)(int n)
Definition:
plural_forms.hpp:27
Generated by
1.9.4