2 // Copyright (C) 2006 Ingo Ruhnke <grumbel@gmail.com>
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #ifndef HEADER_SUPERTUX_UTIL_GETTEXT_HPP
18 #define HEADER_SUPERTUX_UTIL_GETTEXT_HPP
20 #include <tinygettext/tinygettext.hpp>
24 #include "supertux/globals.hpp"
26 extern std::unique_ptr<tinygettext::DictionaryManager> g_dictionary_manager;
29 * If you need to do a nontrivial substitution of values into a pattern, use
30 * boost::format rather than an ad-hoc concatenation. That way, translators can
31 * translate the format string as a whole (and even rearrange the values if
32 * necessary with "%1$s"-style codes) instead of multiple pieces. Patterns like
33 * "Label: %s" with only one string piece are a borderline case where
34 * boost::format is not really necessary.
36 * http://www.mihai-nita.net/article.php?artID=20060430a
39 * std::string msg = _("You collected ") + num + _(" coins");
40 * std::cout << _("You collected ") << num << _(" coins");
42 * #include <boost/format.hpp>
43 * std::string msg = str(boost::format(_("You collected %d coins")) % num);
44 * std::cout << boost::format(_("You collected %d coins")) % num;
47 static inline std::string _(const std::string& message)
49 if (g_dictionary_manager)
51 return g_dictionary_manager->get_dictionary().translate(message);