Files
GDevelop/Core/GDCore/Tools/Localization.h

49 lines
1.2 KiB
C++

/*
* GDevelop Core
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
* reserved. This project is released under the MIT License.
*/
#ifndef GDCORE_LOCALIZATION_H
#define GDCORE_LOCALIZATION_H
/** @file
* Provide a way to mark strings to be translated.
*
* Strings to be translated in GDevelop Core codebase
* are marked with the underscore macro, for example: _("Hello World").
*
* The macro is then defined to be using the translation function
* of the underlying platform (Emscripten for GDevelop 5).
*/
#if defined(EMSCRIPTEN)
// When compiling with Emscripten, use a translation function that is calling a
// JS method on the module, so that an external translation library can be used.
#include "GDCore/String.h"
#if defined(_)
#undef _
#endif
namespace gd {
gd::String GetTranslation(const gd::String& str);
gd::String GetTranslation(const char* str);
} // namespace gd
#define _(s) gd::GetTranslation(u8##s)
#else
// When compiling without Emscripten,
// just return an untranslated gd::String.
// Create a new macro to return UTF8 gd::String from a translation
#if defined(_)
#undef _
#endif
#define _(s) gd::String(u8##s)
#endif
#endif // GDCORE_LOCALIZATION_H