mirror of
https://github.com/Relintai/pandemonium_engine_docs.git
synced 2025-01-04 14:49:52 +01:00
Cleanups.
This commit is contained in:
parent
486d76d00c
commit
b68153e78d
@ -1,10 +1,8 @@
|
||||
|
||||
|
||||
Internationalizing games
|
||||
========================
|
||||
# Internationalizing games
|
||||
|
||||
Introduction
|
||||
------------
|
||||
## Introduction
|
||||
|
||||
Sería excelente que el mundo hablara solo un idioma (It would be great if the
|
||||
world spoke only one language). Unfortunately for
|
||||
@ -26,8 +24,7 @@ Note:
|
||||
We will be using the official demo as an example; you can
|
||||
`download it from the Asset Library ( https://pandemoniumengine.org/asset-library/asset/134 )`.
|
||||
|
||||
Configuring the imported translation
|
||||
------------------------------------
|
||||
## Configuring the imported translation
|
||||
|
||||
Translations can get updated and re-imported when they change, but
|
||||
they still have to be added to the project. This is done in
|
||||
@ -37,8 +34,7 @@ they still have to be added to the project. This is done in
|
||||
|
||||
The above dialog is used to add or remove translations project-wide.
|
||||
|
||||
Localizing resources
|
||||
--------------------
|
||||
## Localizing resources
|
||||
|
||||
It is also possible to instruct Pandemonium to use alternate versions of
|
||||
assets (resources) depending on the current language. The **Remaps** tab
|
||||
@ -49,8 +45,7 @@ can be used for this:
|
||||
Select the resource to be remapped, then add some alternatives for each
|
||||
locale.
|
||||
|
||||
Converting keys to text
|
||||
-----------------------
|
||||
## Converting keys to text
|
||||
|
||||
Some controls, such as `Button`,
|
||||
will automatically fetch a translation if their text matches a translation key.
|
||||
@ -94,8 +89,7 @@ translations and convert it if found:
|
||||
status.set_text(tr("GAME_STATUS_" + str(status_index)))
|
||||
```
|
||||
|
||||
Making controls resizable
|
||||
--------------------------
|
||||
### Making controls resizable
|
||||
|
||||
The same text in different languages can vary greatly in length. For
|
||||
this, make sure to read the tutorial on `doc_size_and_anchors`, as
|
||||
@ -103,16 +97,14 @@ dynamically adjusting control sizes may help.
|
||||
`Container` can be useful, as well as the text wrapping
|
||||
options available in `Label`.
|
||||
|
||||
TranslationServer
|
||||
-----------------
|
||||
## TranslationServer
|
||||
|
||||
Pandemonium has a server handling low-level translation management
|
||||
called the `TranslationServer`.
|
||||
Translations can be added or removed during run-time;
|
||||
the current language can also be changed at run-time.
|
||||
|
||||
Testing translations
|
||||
--------------------
|
||||
## Testing translations
|
||||
|
||||
You may want to test a project's translation before releasing it. Pandemonium provides two ways
|
||||
to do this.
|
||||
@ -136,8 +128,7 @@ supplied:
|
||||
pandemonium --language fr
|
||||
```
|
||||
|
||||
Translating the project name
|
||||
----------------------------
|
||||
## Translating the project name
|
||||
|
||||
The project name becomes the app name when exporting to different
|
||||
operating systems and platforms. To specify the project name in more
|
||||
|
@ -1,7 +1,5 @@
|
||||
|
||||
|
||||
Localization using gettext
|
||||
==========================
|
||||
# Localization using gettext
|
||||
|
||||
In addition to `doc_importing_translations` in CSV format, Pandemonium
|
||||
also supports loading translation files written in the GNU gettext
|
||||
@ -13,8 +11,7 @@ Note:
|
||||
It's written with C projects in mind, but much of the advice
|
||||
also applies to Pandemonium (with the exception of `xgettext`).
|
||||
|
||||
Advantages
|
||||
----------
|
||||
## Advantages
|
||||
|
||||
- gettext is a standard format, which can be edited using any text editor
|
||||
or GUI editors such as `Poedit ( https://poedit.net/ )`.
|
||||
@ -26,8 +23,7 @@ Advantages
|
||||
- Multiline strings are more convenient to edit in gettext files compared
|
||||
to CSV files.
|
||||
|
||||
Disadvantages
|
||||
-------------
|
||||
## Disadvantages
|
||||
|
||||
- gettext is a more complex format than CSV and can be harder to grasp for
|
||||
people new to software localization.
|
||||
@ -35,15 +31,13 @@ Disadvantages
|
||||
on their system. However, as Pandemonium supports using text-based message files
|
||||
(`.po`), translators can test their work without having to install gettext tools.
|
||||
|
||||
Caveats
|
||||
-------
|
||||
## Caveats
|
||||
|
||||
- As Pandemonium uses its own PO file parser behind the scenes
|
||||
(which is more limited than the reference GNU gettext implementation),
|
||||
some features such as pluralization aren't supported.
|
||||
|
||||
Installing gettext tools
|
||||
------------------------
|
||||
## Installing gettext tools
|
||||
|
||||
The command line gettext tools are required to perform maintenance operations,
|
||||
such as updating message files. Therefore, it's strongly recommended to
|
||||
@ -60,8 +54,7 @@ install them.
|
||||
- **Linux:** On most distributions, install the `gettext` package from
|
||||
your distribution's package manager.
|
||||
|
||||
Creating the PO template (POT) manually
|
||||
---------------------------------------
|
||||
## Creating the PO template (POT) manually
|
||||
|
||||
Pandemonium currently doesn't support extracting source strings using `xgettext`,
|
||||
so the `.pot` file must be created manually. This file can be placed anywhere
|
||||
@ -87,8 +80,7 @@ the translated string.
|
||||
The `msgstr` value in PO template files (`.pot`) should **always** be empty.
|
||||
Localization will be done in the generated `.po` files instead.
|
||||
|
||||
Creating the PO template (POT) using pybabel
|
||||
--------------------------------------------
|
||||
## Creating the PO template (POT) using pybabel
|
||||
|
||||
The Python tool pybabel has support for Pandemonium and can be used to automatically
|
||||
create and update the POT file from your scene files and scripts.
|
||||
@ -122,8 +114,7 @@ arguments to `tr()` will be translated, as well
|
||||
as properties named "text" (commonly used by Control nodes) and LineEdit's
|
||||
"placeholder_text" property.
|
||||
|
||||
Creating a messages file from a PO template
|
||||
-------------------------------------------
|
||||
## Creating a messages file from a PO template
|
||||
|
||||
The `msginit` command is used to turn a PO template into a messages file.
|
||||
For instance, to create a French localization file, use the following command
|
||||
@ -139,8 +130,7 @@ as the PO template.
|
||||
Alternatively, you can do that graphically using Poedit, or by uploading the
|
||||
POT file to your web platform of choice.
|
||||
|
||||
Loading a messages file in Pandemonium
|
||||
--------------------------------
|
||||
## Loading a messages file in Pandemonium
|
||||
|
||||
To register a messages file as a translation in a project, open the
|
||||
**Project Settings**, then go to the **Localization** tab.
|
||||
@ -152,8 +142,7 @@ Note:
|
||||
See `doc_internationalizing_games` for more information on
|
||||
importing and testing translations in Pandemonium.
|
||||
|
||||
Updating message files to follow the PO template
|
||||
------------------------------------------------
|
||||
## Updating message files to follow the PO template
|
||||
|
||||
After updating the PO template, you will have to update message files so
|
||||
that they contain new strings, while removing strings that are no longer
|
||||
@ -179,8 +168,7 @@ Note:
|
||||
Strings with "fuzzy" comments will **not** be read by Pandemonium until the
|
||||
translation is updated and the "fuzzy" comment is removed.
|
||||
|
||||
Checking the validity of a PO file or template
|
||||
----------------------------------------------
|
||||
## Checking the validity of a PO file or template
|
||||
|
||||
It is possible to check whether a gettext file's syntax is valid by running
|
||||
the command below:
|
||||
@ -192,8 +180,7 @@ the command below:
|
||||
If there are syntax errors or warnings, they will be displayed in the console.
|
||||
Otherwise, `msgfmt` won't output anything.
|
||||
|
||||
Using binary MO files (useful for large projects only)
|
||||
------------------------------------------------------
|
||||
## Using binary MO files (useful for large projects only)
|
||||
|
||||
For large projects with several thousands of strings to translate or more,
|
||||
it can be worth it to use binary (compiled) MO message files instead of text-based
|
||||
|
@ -1,739 +1,375 @@
|
||||
|
||||
|
||||
Locales
|
||||
=======
|
||||
# Locales
|
||||
|
||||
.. Note: This list is synced with core/translation.cpp in the engine.
|
||||
Note: This list is synced with core/translation.cpp in the engine.
|
||||
|
||||
This is the list of supported locales and variants in the engine. It's
|
||||
based on the Unix standard locale strings:
|
||||
|
||||
+--------------+------------------------------------+
|
||||
|
||||
| Locale | Language and Variant |
|
||||
+==============+====================================+
|
||||
|--------------|------------------------------------|
|
||||
| aa | Afar |
|
||||
+--------------+------------------------------------+
|
||||
| aa_DJ | Afar (Djibouti) |
|
||||
+--------------+------------------------------------+
|
||||
| aa_ER | Afar (Eritrea) |
|
||||
+--------------+------------------------------------+
|
||||
| aa_ET | Afar (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| af | Afrikaans |
|
||||
+--------------+------------------------------------+
|
||||
| af_ZA | Afrikaans (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| agr_PE | Aguaruna (Peru) |
|
||||
+--------------+------------------------------------+
|
||||
| ak_GH | Akan (Ghana) |
|
||||
+--------------+------------------------------------+
|
||||
| am_ET | Amharic (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| an_ES | Aragonese (Spain) |
|
||||
+--------------+------------------------------------+
|
||||
| anp_IN | Angika (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ar | Arabic |
|
||||
+--------------+------------------------------------+
|
||||
| ar_AE | Arabic (United Arab Emirates) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_BH | Arabic (Bahrain) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_DZ | Arabic (Algeria) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_EG | Arabic (Egypt) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_IQ | Arabic (Iraq) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_JO | Arabic (Jordan) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_KW | Arabic (Kuwait) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_LB | Arabic (Lebanon) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_LY | Arabic (Libya) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_MA | Arabic (Morocco) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_OM | Arabic (Oman) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_QA | Arabic (Qatar) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_SA | Arabic (Saudi Arabia) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_SD | Arabic (Sudan) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_SS | Arabic (South Sudan) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_SY | Arabic (Syria) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_TN | Arabic (Tunisia) |
|
||||
+--------------+------------------------------------+
|
||||
| ar_YE | Arabic (Yemen) |
|
||||
+--------------+------------------------------------+
|
||||
| as_IN | Assamese (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ast_ES | Asturian (Spain) |
|
||||
+--------------+------------------------------------+
|
||||
| ayc_PE | Southern Aymara (Peru) |
|
||||
+--------------+------------------------------------+
|
||||
| ay_PE | Aymara (Peru) |
|
||||
+--------------+------------------------------------+
|
||||
| az_AZ | Azerbaijani (Azerbaijan) |
|
||||
+--------------+------------------------------------+
|
||||
| be | Belarusian |
|
||||
+--------------+------------------------------------+
|
||||
| be_BY | Belarusian (Belarus) |
|
||||
+--------------+------------------------------------+
|
||||
| bem_ZM | Bemba (Zambia) |
|
||||
+--------------+------------------------------------+
|
||||
| ber_DZ | Berber languages (Algeria) |
|
||||
+--------------+------------------------------------+
|
||||
| ber_MA | Berber languages (Morocco) |
|
||||
+--------------+------------------------------------+
|
||||
| bg | Bulgarian |
|
||||
+--------------+------------------------------------+
|
||||
| bg_BG | Bulgarian (Bulgaria) |
|
||||
+--------------+------------------------------------+
|
||||
| bhb_IN | Bhili (India) |
|
||||
+--------------+------------------------------------+
|
||||
| bho_IN | Bhojpuri (India) |
|
||||
+--------------+------------------------------------+
|
||||
| bi_TV | Bislama (Tuvalu) |
|
||||
+--------------+------------------------------------+
|
||||
| bn | Bengali |
|
||||
+--------------+------------------------------------+
|
||||
| bn_BD | Bengali (Bangladesh) |
|
||||
+--------------+------------------------------------+
|
||||
| bn_IN | Bengali (India) |
|
||||
+--------------+------------------------------------+
|
||||
| bo | Tibetan |
|
||||
+--------------+------------------------------------+
|
||||
| bo_CN | Tibetan (China) |
|
||||
+--------------+------------------------------------+
|
||||
| bo_IN | Tibetan (India) |
|
||||
+--------------+------------------------------------+
|
||||
| br_FR | Breton (France) |
|
||||
+--------------+------------------------------------+
|
||||
| brx_IN | Bodo (India) |
|
||||
+--------------+------------------------------------+
|
||||
| bs_BA | Bosnian (Bosnia and Herzegovina) |
|
||||
+--------------+------------------------------------+
|
||||
| byn_ER | Bilin (Eritrea) |
|
||||
+--------------+------------------------------------+
|
||||
| ca | Catalan |
|
||||
+--------------+------------------------------------+
|
||||
| ca_AD | Catalan (Andorra) |
|
||||
+--------------+------------------------------------+
|
||||
| ca_ES | Catalan (Spain) |
|
||||
+--------------+------------------------------------+
|
||||
| ca_FR | Catalan (France) |
|
||||
+--------------+------------------------------------+
|
||||
| ca_IT | Catalan (Italy) |
|
||||
+--------------+------------------------------------+
|
||||
| ce_RU | Chechen (Russia) |
|
||||
+--------------+------------------------------------+
|
||||
| chr_US | Cherokee (United States) |
|
||||
+--------------+------------------------------------+
|
||||
| cmn_TW | Mandarin Chinese (Taiwan) |
|
||||
+--------------+------------------------------------+
|
||||
| crh_UA | Crimean Tatar (Ukraine) |
|
||||
+--------------+------------------------------------+
|
||||
| csb_PL | Kashubian (Poland) |
|
||||
+--------------+------------------------------------+
|
||||
| cs | Czech |
|
||||
+--------------+------------------------------------+
|
||||
| cs_CZ | Czech (Czech Republic) |
|
||||
+--------------+------------------------------------+
|
||||
| cv_RU | Chuvash (Russia) |
|
||||
+--------------+------------------------------------+
|
||||
| cy_GB | Welsh (United Kingdom) |
|
||||
+--------------+------------------------------------+
|
||||
| da | Danish |
|
||||
+--------------+------------------------------------+
|
||||
| da_DK | Danish (Denmark) |
|
||||
+--------------+------------------------------------+
|
||||
| de | German |
|
||||
+--------------+------------------------------------+
|
||||
| de_AT | German (Austria) |
|
||||
+--------------+------------------------------------+
|
||||
| de_BE | German (Belgium) |
|
||||
+--------------+------------------------------------+
|
||||
| de_CH | German (Switzerland) |
|
||||
+--------------+------------------------------------+
|
||||
| de_DE | German (Germany) |
|
||||
+--------------+------------------------------------+
|
||||
| de_IT | German (Italy) |
|
||||
+--------------+------------------------------------+
|
||||
| de_LU | German (Luxembourg) |
|
||||
+--------------+------------------------------------+
|
||||
| doi_IN | Dogri (India) |
|
||||
+--------------+------------------------------------+
|
||||
| dv_MV | Dhivehi (Maldives) |
|
||||
+--------------+------------------------------------+
|
||||
| dz_BT | Dzongkha (Bhutan) |
|
||||
+--------------+------------------------------------+
|
||||
| el | Greek |
|
||||
+--------------+------------------------------------+
|
||||
| el_CY | Greek (Cyprus) |
|
||||
+--------------+------------------------------------+
|
||||
| el_GR | Greek (Greece) |
|
||||
+--------------+------------------------------------+
|
||||
| en | English |
|
||||
+--------------+------------------------------------+
|
||||
| en_AG | English (Antigua and Barbuda) |
|
||||
+--------------+------------------------------------+
|
||||
| en_AU | English (Australia) |
|
||||
+--------------+------------------------------------+
|
||||
| en_BW | English (Botswana) |
|
||||
+--------------+------------------------------------+
|
||||
| en_CA | English (Canada) |
|
||||
+--------------+------------------------------------+
|
||||
| en_DK | English (Denmark) |
|
||||
+--------------+------------------------------------+
|
||||
| en_GB | English (United Kingdom) |
|
||||
+--------------+------------------------------------+
|
||||
| en_HK | English (Hong Kong) |
|
||||
+--------------+------------------------------------+
|
||||
| en_IE | English (Ireland) |
|
||||
+--------------+------------------------------------+
|
||||
| en_IL | English (Israel) |
|
||||
+--------------+------------------------------------+
|
||||
| en_IN | English (India) |
|
||||
+--------------+------------------------------------+
|
||||
| en_NG | English (Nigeria) |
|
||||
+--------------+------------------------------------+
|
||||
| en_NZ | English (New Zealand) |
|
||||
+--------------+------------------------------------+
|
||||
| en_PH | English (Philippines) |
|
||||
+--------------+------------------------------------+
|
||||
| en_SG | English (Singapore) |
|
||||
+--------------+------------------------------------+
|
||||
| en_US | English (United States) |
|
||||
+--------------+------------------------------------+
|
||||
| en_ZA | English (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| en_ZM | English (Zambia) |
|
||||
+--------------+------------------------------------+
|
||||
| en_ZW | English (Zimbabwe) |
|
||||
+--------------+------------------------------------+
|
||||
| eo | Esperanto |
|
||||
+--------------+------------------------------------+
|
||||
| es | Spanish |
|
||||
+--------------+------------------------------------+
|
||||
| es_AR | Spanish (Argentina) |
|
||||
+--------------+------------------------------------+
|
||||
| es_BO | Spanish (Bolivia) |
|
||||
+--------------+------------------------------------+
|
||||
| es_CL | Spanish (Chile) |
|
||||
+--------------+------------------------------------+
|
||||
| es_CO | Spanish (Colombia) |
|
||||
+--------------+------------------------------------+
|
||||
| es_CR | Spanish (Costa Rica) |
|
||||
+--------------+------------------------------------+
|
||||
| es_CU | Spanish (Cuba) |
|
||||
+--------------+------------------------------------+
|
||||
| es_DO | Spanish (Dominican Republic) |
|
||||
+--------------+------------------------------------+
|
||||
| es_EC | Spanish (Ecuador) |
|
||||
+--------------+------------------------------------+
|
||||
| es_ES | Spanish (Spain) |
|
||||
+--------------+------------------------------------+
|
||||
| es_GT | Spanish (Guatemala) |
|
||||
+--------------+------------------------------------+
|
||||
| es_HN | Spanish (Honduras) |
|
||||
+--------------+------------------------------------+
|
||||
| es_MX | Spanish (Mexico) |
|
||||
+--------------+------------------------------------+
|
||||
| es_NI | Spanish (Nicaragua) |
|
||||
+--------------+------------------------------------+
|
||||
| es_PA | Spanish (Panama) |
|
||||
+--------------+------------------------------------+
|
||||
| es_PE | Spanish (Peru) |
|
||||
+--------------+------------------------------------+
|
||||
| es_PR | Spanish (Puerto Rico) |
|
||||
+--------------+------------------------------------+
|
||||
| es_PY | Spanish (Paraguay) |
|
||||
+--------------+------------------------------------+
|
||||
| es_SV | Spanish (El Salvador) |
|
||||
+--------------+------------------------------------+
|
||||
| es_US | Spanish (United States) |
|
||||
+--------------+------------------------------------+
|
||||
| es_UY | Spanish (Uruguay) |
|
||||
+--------------+------------------------------------+
|
||||
| es_VE | Spanish (Venezuela) |
|
||||
+--------------+------------------------------------+
|
||||
| et | Estonian |
|
||||
+--------------+------------------------------------+
|
||||
| et_EE | Estonian (Estonia) |
|
||||
+--------------+------------------------------------+
|
||||
| eu | Basque |
|
||||
+--------------+------------------------------------+
|
||||
| eu_ES | Basque (Spain) |
|
||||
+--------------+------------------------------------+
|
||||
| fa | Persian |
|
||||
+--------------+------------------------------------+
|
||||
| fa_IR | Persian (Iran) |
|
||||
+--------------+------------------------------------+
|
||||
| ff_SN | Fulah (Senegal) |
|
||||
+--------------+------------------------------------+
|
||||
| fi | Finnish |
|
||||
+--------------+------------------------------------+
|
||||
| fi_FI | Finnish (Finland) |
|
||||
+--------------+------------------------------------+
|
||||
| fil | Filipino |
|
||||
+--------------+------------------------------------+
|
||||
| fil_PH | Filipino (Philippines) |
|
||||
+--------------+------------------------------------+
|
||||
| fo_FO | Faroese (Faroe Islands) |
|
||||
+--------------+------------------------------------+
|
||||
| fr | French |
|
||||
+--------------+------------------------------------+
|
||||
| fr_BE | French (Belgium) |
|
||||
+--------------+------------------------------------+
|
||||
| fr_CA | French (Canada) |
|
||||
+--------------+------------------------------------+
|
||||
| fr_CH | French (Switzerland) |
|
||||
+--------------+------------------------------------+
|
||||
| fr_FR | French (France) |
|
||||
+--------------+------------------------------------+
|
||||
| fr_LU | French (Luxembourg) |
|
||||
+--------------+------------------------------------+
|
||||
| fur_IT | Friulian (Italy) |
|
||||
+--------------+------------------------------------+
|
||||
| fy_DE | Western Frisian (Germany) |
|
||||
+--------------+------------------------------------+
|
||||
| fy_NL | Western Frisian (Netherlands) |
|
||||
+--------------+------------------------------------+
|
||||
| ga | Irish |
|
||||
+--------------+------------------------------------+
|
||||
| ga_IE | Irish (Ireland) |
|
||||
+--------------+------------------------------------+
|
||||
| gd_GB | Scottish Gaelic (United Kingdom) |
|
||||
+--------------+------------------------------------+
|
||||
| gez_ER | Geez (Eritrea) |
|
||||
+--------------+------------------------------------+
|
||||
| gez_ET | Geez (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| gl_ES | Galician (Spain) |
|
||||
+--------------+------------------------------------+
|
||||
| gu_IN | Gujarati (India) |
|
||||
+--------------+------------------------------------+
|
||||
| gv_GB | Manx (United Kingdom) |
|
||||
+--------------+------------------------------------+
|
||||
| hak_TW | Hakka Chinese (Taiwan) |
|
||||
+--------------+------------------------------------+
|
||||
| ha_NG | Hausa (Nigeria) |
|
||||
+--------------+------------------------------------+
|
||||
| he | Hebrew |
|
||||
+--------------+------------------------------------+
|
||||
| he_IL | Hebrew (Israel) |
|
||||
+--------------+------------------------------------+
|
||||
| hi | Hindi |
|
||||
+--------------+------------------------------------+
|
||||
| hi_IN | Hindi (India) |
|
||||
+--------------+------------------------------------+
|
||||
| hne_IN | Chhattisgarhi (India) |
|
||||
+--------------+------------------------------------+
|
||||
| hr | Croatian |
|
||||
+--------------+------------------------------------+
|
||||
| hr_HR | Croatian (Croatia) |
|
||||
+--------------+------------------------------------+
|
||||
| hsb_DE | Upper Sorbian (Germany) |
|
||||
+--------------+------------------------------------+
|
||||
| ht_HT | Haitian (Haiti) |
|
||||
+--------------+------------------------------------+
|
||||
| hu | Hungarian |
|
||||
+--------------+------------------------------------+
|
||||
| hu_HU | Hungarian (Hungary) |
|
||||
+--------------+------------------------------------+
|
||||
| hus_MX | Huastec (Mexico) |
|
||||
+--------------+------------------------------------+
|
||||
| hy_AM | Armenian (Armenia) |
|
||||
+--------------+------------------------------------+
|
||||
| ia_FR | Interlingua (France) |
|
||||
+--------------+------------------------------------+
|
||||
| id | Indonesian |
|
||||
+--------------+------------------------------------+
|
||||
| id_ID | Indonesian (Indonesia) |
|
||||
+--------------+------------------------------------+
|
||||
| ig_NG | Igbo (Nigeria) |
|
||||
+--------------+------------------------------------+
|
||||
| ik_CA | Inupiaq (Canada) |
|
||||
+--------------+------------------------------------+
|
||||
| is | Icelandic |
|
||||
+--------------+------------------------------------+
|
||||
| is_IS | Icelandic (Iceland) |
|
||||
+--------------+------------------------------------+
|
||||
| it | Italian |
|
||||
+--------------+------------------------------------+
|
||||
| it_CH | Italian (Switzerland) |
|
||||
+--------------+------------------------------------+
|
||||
| it_IT | Italian (Italy) |
|
||||
+--------------+------------------------------------+
|
||||
| iu_CA | Inuktitut (Canada) |
|
||||
+--------------+------------------------------------+
|
||||
| ja | Japanese |
|
||||
+--------------+------------------------------------+
|
||||
| ja_JP | Japanese (Japan) |
|
||||
+--------------+------------------------------------+
|
||||
| kab_DZ | Kabyle (Algeria) |
|
||||
+--------------+------------------------------------+
|
||||
| ka | Georgian |
|
||||
+--------------+------------------------------------+
|
||||
| ka_GE | Georgian (Georgia) |
|
||||
+--------------+------------------------------------+
|
||||
| kk_KZ | Kazakh (Kazakhstan) |
|
||||
+--------------+------------------------------------+
|
||||
| kl_GL | Kalaallisut (Greenland) |
|
||||
+--------------+------------------------------------+
|
||||
| km_KH | Central Khmer (Cambodia) |
|
||||
+--------------+------------------------------------+
|
||||
| kn_IN | Kannada (India) |
|
||||
+--------------+------------------------------------+
|
||||
| kok_IN | Konkani (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ko | Korean |
|
||||
+--------------+------------------------------------+
|
||||
| ko_KR | Korean (South Korea) |
|
||||
+--------------+------------------------------------+
|
||||
| ks_IN | Kashmiri (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ku | Kurdish |
|
||||
+--------------+------------------------------------+
|
||||
| ku_TR | Kurdish (Turkey) |
|
||||
+--------------+------------------------------------+
|
||||
| kw_GB | Cornish (United Kingdom) |
|
||||
+--------------+------------------------------------+
|
||||
| ky_KG | Kirghiz (Kyrgyzstan) |
|
||||
+--------------+------------------------------------+
|
||||
| lb_LU | Luxembourgish (Luxembourg) |
|
||||
+--------------+------------------------------------+
|
||||
| lg_UG | Ganda (Uganda) |
|
||||
+--------------+------------------------------------+
|
||||
| li_BE | Limburgan (Belgium) |
|
||||
+--------------+------------------------------------+
|
||||
| li_NL | Limburgan (Netherlands) |
|
||||
+--------------+------------------------------------+
|
||||
| lij_IT | Ligurian (Italy) |
|
||||
+--------------+------------------------------------+
|
||||
| ln_CD | Lingala (Congo) |
|
||||
+--------------+------------------------------------+
|
||||
| lo_LA | Lao (Laos) |
|
||||
+--------------+------------------------------------+
|
||||
| lt | Lithuanian |
|
||||
+--------------+------------------------------------+
|
||||
| lt_LT | Lithuanian (Lithuania) |
|
||||
+--------------+------------------------------------+
|
||||
| lv | Latvian |
|
||||
+--------------+------------------------------------+
|
||||
| lv_LV | Latvian (Latvia) |
|
||||
+--------------+------------------------------------+
|
||||
| lzh_TW | Literary Chinese (Taiwan) |
|
||||
+--------------+------------------------------------+
|
||||
| mag_IN | Magahi (India) |
|
||||
+--------------+------------------------------------+
|
||||
| mai_IN | Maithili (India) |
|
||||
+--------------+------------------------------------+
|
||||
| mg_MG | Malagasy (Madagascar) |
|
||||
+--------------+------------------------------------+
|
||||
| mh_MH | Marshallese (Marshall Islands) |
|
||||
+--------------+------------------------------------+
|
||||
| mhr_RU | Eastern Mari (Russia) |
|
||||
+--------------+------------------------------------+
|
||||
| mi | Maori |
|
||||
+--------------+------------------------------------+
|
||||
| mi_NZ | Maori (New Zealand) |
|
||||
+--------------+------------------------------------+
|
||||
| miq_NI | Mískito (Nicaragua) |
|
||||
+--------------+------------------------------------+
|
||||
| mk | Macedonian |
|
||||
+--------------+------------------------------------+
|
||||
| mk_MK | Macedonian (Macedonia) |
|
||||
+--------------+------------------------------------+
|
||||
| ml | Malayalam |
|
||||
+--------------+------------------------------------+
|
||||
| ml_IN | Malayalam (India) |
|
||||
+--------------+------------------------------------+
|
||||
| mni_IN | Manipuri (India) |
|
||||
+--------------+------------------------------------+
|
||||
| mn_MN | Mongolian (Mongolia) |
|
||||
+--------------+------------------------------------+
|
||||
| mr_IN | Marathi (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ms | Malay |
|
||||
+--------------+------------------------------------+
|
||||
| ms_MY | Malay (Malaysia) |
|
||||
+--------------+------------------------------------+
|
||||
| mt | Maltese |
|
||||
+--------------+------------------------------------+
|
||||
| mt_MT | Maltese (Malta) |
|
||||
+--------------+------------------------------------+
|
||||
| my_MM | Burmese (Myanmar) |
|
||||
+--------------+------------------------------------+
|
||||
| myv_RU | Erzya (Russia) |
|
||||
+--------------+------------------------------------+
|
||||
| nah_MX | Nahuatl languages (Mexico) |
|
||||
+--------------+------------------------------------+
|
||||
| nan_TW | Min Nan Chinese (Taiwan) |
|
||||
+--------------+------------------------------------+
|
||||
| nb | Norwegian Bokmål |
|
||||
+--------------+------------------------------------+
|
||||
| nb_NO | Norwegian Bokmål (Norway) |
|
||||
+--------------+------------------------------------+
|
||||
| nds_DE | Low German (Germany) |
|
||||
+--------------+------------------------------------+
|
||||
| nds_NL | Low German (Netherlands) |
|
||||
+--------------+------------------------------------+
|
||||
| ne_NP | Nepali (Nepal) |
|
||||
+--------------+------------------------------------+
|
||||
| nhn_MX | Central Nahuatl (Mexico) |
|
||||
+--------------+------------------------------------+
|
||||
| niu_NU | Niuean (Niue) |
|
||||
+--------------+------------------------------------+
|
||||
| niu_NZ | Niuean (New Zealand) |
|
||||
+--------------+------------------------------------+
|
||||
| nl | Dutch |
|
||||
+--------------+------------------------------------+
|
||||
| nl_AW | Dutch (Aruba) |
|
||||
+--------------+------------------------------------+
|
||||
| nl_BE | Dutch (Belgium) |
|
||||
+--------------+------------------------------------+
|
||||
| nl_NL | Dutch (Netherlands) |
|
||||
+--------------+------------------------------------+
|
||||
| nn | Norwegian Nynorsk |
|
||||
+--------------+------------------------------------+
|
||||
| nn_NO | Norwegian Nynorsk (Norway) |
|
||||
+--------------+------------------------------------+
|
||||
| nr_ZA | South Ndebele (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| nso_ZA | Pedi (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| oc_FR | Occitan (France) |
|
||||
+--------------+------------------------------------+
|
||||
| om | Oromo |
|
||||
+--------------+------------------------------------+
|
||||
| om_ET | Oromo (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| om_KE | Oromo (Kenya) |
|
||||
+--------------+------------------------------------+
|
||||
| or_IN | Oriya (India) |
|
||||
+--------------+------------------------------------+
|
||||
| os_RU | Ossetian (Russia) |
|
||||
+--------------+------------------------------------+
|
||||
| pa_IN | Panjabi (India) |
|
||||
+--------------+------------------------------------+
|
||||
| pa_PK | Panjabi (Pakistan) |
|
||||
+--------------+------------------------------------+
|
||||
| pap | Papiamento |
|
||||
+--------------+------------------------------------+
|
||||
| pap_AN | Papiamento (Netherlands Antilles) |
|
||||
+--------------+------------------------------------+
|
||||
| pap_AW | Papiamento (Aruba) |
|
||||
+--------------+------------------------------------+
|
||||
| pap_CW | Papiamento (Curaçao) |
|
||||
+--------------+------------------------------------+
|
||||
| pl | Polish |
|
||||
+--------------+------------------------------------+
|
||||
| pl_PL | Polish (Poland) |
|
||||
+--------------+------------------------------------+
|
||||
| pr | Pirate |
|
||||
+--------------+------------------------------------+
|
||||
| ps_AF | Pushto (Afghanistan) |
|
||||
+--------------+------------------------------------+
|
||||
| pt | Portuguese |
|
||||
+--------------+------------------------------------+
|
||||
| pt_BR | Portuguese (Brazil) |
|
||||
+--------------+------------------------------------+
|
||||
| pt_PT | Portuguese (Portugal) |
|
||||
+--------------+------------------------------------+
|
||||
| quy_PE | Ayacucho Quechua (Peru) |
|
||||
+--------------+------------------------------------+
|
||||
| quz_PE | Cusco Quechua (Peru) |
|
||||
+--------------+------------------------------------+
|
||||
| raj_IN | Rajasthani (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ro | Romanian |
|
||||
+--------------+------------------------------------+
|
||||
| ro_RO | Romanian (Romania) |
|
||||
+--------------+------------------------------------+
|
||||
| ru | Russian |
|
||||
+--------------+------------------------------------+
|
||||
| ru_RU | Russian (Russia) |
|
||||
+--------------+------------------------------------+
|
||||
| ru_UA | Russian (Ukraine) |
|
||||
+--------------+------------------------------------+
|
||||
| rw_RW | Kinyarwanda (Rwanda) |
|
||||
+--------------+------------------------------------+
|
||||
| sa_IN | Sanskrit (India) |
|
||||
+--------------+------------------------------------+
|
||||
| sat_IN | Santali (India) |
|
||||
+--------------+------------------------------------+
|
||||
| sc_IT | Sardinian (Italy) |
|
||||
+--------------+------------------------------------+
|
||||
| sco | Scots |
|
||||
+--------------+------------------------------------+
|
||||
| sd_IN | Sindhi (India) |
|
||||
+--------------+------------------------------------+
|
||||
| se_NO | Northern Sami (Norway) |
|
||||
+--------------+------------------------------------+
|
||||
| sgs_LT | Samogitian (Lithuania) |
|
||||
+--------------+------------------------------------+
|
||||
| shs_CA | Shuswap (Canada) |
|
||||
+--------------+------------------------------------+
|
||||
| sid_ET | Sidamo (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| si | Sinhala |
|
||||
+--------------+------------------------------------+
|
||||
| si_LK | Sinhala (Sri Lanka) |
|
||||
+--------------+------------------------------------+
|
||||
| sk | Slovak |
|
||||
+--------------+------------------------------------+
|
||||
| sk_SK | Slovak (Slovakia) |
|
||||
+--------------+------------------------------------+
|
||||
| sl | Slovenian |
|
||||
+--------------+------------------------------------+
|
||||
| sl_SI | Slovenian (Slovenia) |
|
||||
+--------------+------------------------------------+
|
||||
| so | Somali |
|
||||
+--------------+------------------------------------+
|
||||
| so_DJ | Somali (Djibouti) |
|
||||
+--------------+------------------------------------+
|
||||
| so_ET | Somali (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| so_KE | Somali (Kenya) |
|
||||
+--------------+------------------------------------+
|
||||
| so_SO | Somali (Somalia) |
|
||||
+--------------+------------------------------------+
|
||||
| son_ML | Songhai languages (Mali) |
|
||||
+--------------+------------------------------------+
|
||||
| sq | Albanian |
|
||||
+--------------+------------------------------------+
|
||||
| sq_AL | Albanian (Albania) |
|
||||
+--------------+------------------------------------+
|
||||
| sq_KV | Albanian (Kosovo) |
|
||||
+--------------+------------------------------------+
|
||||
| sq_MK | Albanian (Macedonia) |
|
||||
+--------------+------------------------------------+
|
||||
| sr | Serbian |
|
||||
+--------------+------------------------------------+
|
||||
| sr_Cyrl | Serbian (Cyrillic) |
|
||||
+--------------+------------------------------------+
|
||||
| sr_Latn | Serbian (Latin) |
|
||||
+--------------+------------------------------------+
|
||||
| sr_ME | Serbian (Montenegro) |
|
||||
+--------------+------------------------------------+
|
||||
| sr_RS | Serbian (Serbia) |
|
||||
+--------------+------------------------------------+
|
||||
| ss_ZA | Swati (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| st_ZA | Southern Sotho (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| sv | Swedish |
|
||||
+--------------+------------------------------------+
|
||||
| sv_FI | Swedish (Finland) |
|
||||
+--------------+------------------------------------+
|
||||
| sv_SE | Swedish (Sweden) |
|
||||
+--------------+------------------------------------+
|
||||
| sw_KE | Swahili (Kenya) |
|
||||
+--------------+------------------------------------+
|
||||
| sw_TZ | Swahili (Tanzania) |
|
||||
+--------------+------------------------------------+
|
||||
| szl_PL | Silesian (Poland) |
|
||||
+--------------+------------------------------------+
|
||||
| ta | Tamil |
|
||||
+--------------+------------------------------------+
|
||||
| ta_IN | Tamil (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ta_LK | Tamil (Sri Lanka) |
|
||||
+--------------+------------------------------------+
|
||||
| tcy_IN | Tulu (India) |
|
||||
+--------------+------------------------------------+
|
||||
| te | Telugu |
|
||||
+--------------+------------------------------------+
|
||||
| te_IN | Telugu (India) |
|
||||
+--------------+------------------------------------+
|
||||
| tg_TJ | Tajik (Tajikistan) |
|
||||
+--------------+------------------------------------+
|
||||
| the_NP | Chitwania Tharu (Nepal) |
|
||||
+--------------+------------------------------------+
|
||||
| th | Thai |
|
||||
+--------------+------------------------------------+
|
||||
| th_TH | Thai (Thailand) |
|
||||
+--------------+------------------------------------+
|
||||
| ti | Tigrinya |
|
||||
+--------------+------------------------------------+
|
||||
| ti_ER | Tigrinya (Eritrea) |
|
||||
+--------------+------------------------------------+
|
||||
| ti_ET | Tigrinya (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| tig_ER | Tigre (Eritrea) |
|
||||
+--------------+------------------------------------+
|
||||
| tk_TM | Turkmen (Turkmenistan) |
|
||||
+--------------+------------------------------------+
|
||||
| tl_PH | Tagalog (Philippines) |
|
||||
+--------------+------------------------------------+
|
||||
| tn_ZA | Tswana (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| tr | Turkish |
|
||||
+--------------+------------------------------------+
|
||||
| tr_CY | Turkish (Cyprus) |
|
||||
+--------------+------------------------------------+
|
||||
| tr_TR | Turkish (Turkey) |
|
||||
+--------------+------------------------------------+
|
||||
| ts_ZA | Tsonga (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| tt_RU | Tatar (Russia) |
|
||||
+--------------+------------------------------------+
|
||||
| ug_CN | Uighur (China) |
|
||||
+--------------+------------------------------------+
|
||||
| uk | Ukrainian |
|
||||
+--------------+------------------------------------+
|
||||
| uk_UA | Ukrainian (Ukraine) |
|
||||
+--------------+------------------------------------+
|
||||
| unm_US | Unami (United States) |
|
||||
+--------------+------------------------------------+
|
||||
| ur | Urdu |
|
||||
+--------------+------------------------------------+
|
||||
| ur_IN | Urdu (India) |
|
||||
+--------------+------------------------------------+
|
||||
| ur_PK | Urdu (Pakistan) |
|
||||
+--------------+------------------------------------+
|
||||
| uz | Uzbek |
|
||||
+--------------+------------------------------------+
|
||||
| uz_UZ | Uzbek (Uzbekistan) |
|
||||
+--------------+------------------------------------+
|
||||
| ve_ZA | Venda (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| vi | Vietnamese |
|
||||
+--------------+------------------------------------+
|
||||
| vi_VN | Vietnamese (Vietnam) |
|
||||
+--------------+------------------------------------+
|
||||
| wa_BE | Walloon (Belgium) |
|
||||
+--------------+------------------------------------+
|
||||
| wae_CH | Walser (Switzerland) |
|
||||
+--------------+------------------------------------+
|
||||
| wal_ET | Wolaytta (Ethiopia) |
|
||||
+--------------+------------------------------------+
|
||||
| wo_SN | Wolof (Senegal) |
|
||||
+--------------+------------------------------------+
|
||||
| xh_ZA | Xhosa (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
| yi_US | Yiddish (United States) |
|
||||
+--------------+------------------------------------+
|
||||
| yo_NG | Yoruba (Nigeria) |
|
||||
+--------------+------------------------------------+
|
||||
| yue_HK | Yue Chinese (Hong Kong) |
|
||||
+--------------+------------------------------------+
|
||||
| zh | Chinese |
|
||||
+--------------+------------------------------------+
|
||||
| zh_CN | Chinese (China) |
|
||||
+--------------+------------------------------------+
|
||||
| zh_HK | Chinese (Hong Kong) |
|
||||
+--------------+------------------------------------+
|
||||
| zh_SG | Chinese (Singapore) |
|
||||
+--------------+------------------------------------+
|
||||
| zh_TW | Chinese (Taiwan) |
|
||||
+--------------+------------------------------------+
|
||||
| zu_ZA | Zulu (South Africa) |
|
||||
+--------------+------------------------------------+
|
||||
|
@ -1,10 +1,8 @@
|
||||
|
||||
|
||||
Creating Android plugins
|
||||
========================
|
||||
# Creating Android plugins
|
||||
|
||||
Introduction
|
||||
------------
|
||||
## Introduction
|
||||
|
||||
Android plugins are powerful tools to extend the capabilities of the Pandemonium engine
|
||||
by tapping into the functionality provided by the Android platform and ecosystem.
|
||||
@ -29,8 +27,7 @@ and capabilities that don't belong to the core feature set of a game engine:
|
||||
- Posting to Facebook, Twitter, etc.
|
||||
- Push notifications
|
||||
|
||||
Android plugin
|
||||
--------------
|
||||
## Android plugin
|
||||
|
||||
While introduced in Pandemonium 3.2, the Android plugin system got a significant architecture update starting with Pandemonium 3.2.2.
|
||||
The new plugin system is backward-incompatible with the previous one, but both systems are kept functional in future releases of the 3.2.x branch.
|
||||
@ -46,8 +43,7 @@ with the following caveats:
|
||||
- The library must have a dependency on the Pandemonium engine library (`pandemonium-lib.<version>.<status>.aar`). A stable version is made available for each Pandemonium release on the `Pandemonium download page ( https://pandemoniumengine.org/download )`.
|
||||
- The library must include a specifically configured `<meta-data )` tag in its manifest file.
|
||||
|
||||
Building an Android plugin
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
#### Building an Android plugin
|
||||
|
||||
**Prerequisite:** `Android Studio ( https://developer.android.com/studio )` is strongly recommended as the IDE to use to create Android plugins.
|
||||
The instructions below assumes that you're using Android Studio.
|
||||
@ -122,8 +118,7 @@ The instructions below assumes that you're using Android Studio.
|
||||
- **remote**: contains a list of remote binary gradle dependencies for the plugin.
|
||||
- **custom_maven_repos**: contains a list of URLs specifying the custom maven repositories required for the plugin's dependencies.
|
||||
|
||||
Loading and using an Android plugin
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
#### Loading and using an Android plugin
|
||||
|
||||
Move the plugin configuration file (e.g.: `MyPlugin.gdap`) and, if any, its local binary (e.g.: `MyPlugin.aar`) and dependencies to the Pandemonium project's `res://android/plugins` directory.
|
||||
|
||||
@ -140,8 +135,7 @@ From your script:
|
||||
```
|
||||
|
||||
|
||||
Bundling GDNative resources
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
#### Bundling GDNative resources
|
||||
|
||||
An Android plugin can define and provide C/C++ GDNative resources, either to provide and/or access functionality from the game logic.
|
||||
The GDNative resources can be bundled within the plugin `aar` file which simplifies the distribution and deployment process:
|
||||
@ -154,19 +148,16 @@ For GDNative libraries, the plugin singleton object must override the `org.pande
|
||||
and return the paths to the bundled GDNative libraries config files (`*.gdnlib`). The paths must be relative to the `assets` directory.
|
||||
At runtime, the plugin will provide these paths to Pandemonium core which will use them to load and initialize the bundled GDNative libraries.
|
||||
|
||||
Reference implementations
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
#### Reference implementations
|
||||
|
||||
- `Pandemonium Oculus Mobile plugin ( https://github.com/PandemoniumVR/pandemonium_oculus_mobile )`
|
||||
- `Bundled gdnative resources ( https://github.com/PandemoniumVR/pandemonium_oculus_mobile/tree/master/plugin/src/main/assets/addons/pandemonium_ovrmobile )`
|
||||
- `Pandemonium Google Play Billing plugin ( https://github.com/Relintai/pandemonium_engine-google-play-billing )`
|
||||
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
## Troubleshooting
|
||||
|
||||
Pandemonium crashes upon load
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
#### Pandemonium crashes upon load
|
||||
|
||||
Check `adb logcat` for possible problems, then:
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
|
||||
|
||||
Android in-app purchases
|
||||
========================
|
||||
# Android in-app purchases
|
||||
|
||||
Pandemonium offers a first-party `PandemoniumGooglePlayBilling` Android plugin since Pandemonium 3.2.2.
|
||||
The new plugin uses the `Google Play Billing library ( https://developer.android.com/google/play/billing )`
|
||||
@ -11,13 +10,11 @@ If you learn better by looking at an example, you can find the demo project
|
||||
`here ( https://github.com/Relintai/pandemonium_engine-demo-projects/tree/master/mobile/android_iap )`.
|
||||
|
||||
|
||||
Migrating from Pandemonium 3.2.1 and lower (PandemoniumPaymentsV3)
|
||||
------------------------------------------------------
|
||||
## Migrating from Pandemonium 3.2.1 and lower (PandemoniumPaymentsV3)
|
||||
|
||||
The new `PandemoniumGooglePlayBilling` API is not compatible with its predecessor `PandemoniumPaymentsV3`.
|
||||
|
||||
Changes
|
||||
*******
|
||||
#### Changes
|
||||
|
||||
- You need to enable the Custom Build option in your Android export settings and install
|
||||
the `PandemoniumGooglePlayBilling` plugin manually (see below for details)
|
||||
@ -28,11 +25,9 @@ Changes
|
||||
- Signals (no polling or callback objects)
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
## Usage
|
||||
|
||||
Getting started
|
||||
***************
|
||||
#### Getting started
|
||||
|
||||
If not already done, make sure you have enabled and successfully set up `Android Custom Builds ( doc_android_custom_build )`.
|
||||
Grab the`PandemoniumGooglePlayBilling` plugin binary and config from the `releases page ( https://github.com/Relintai/pandemonium_engine-google-play-billing/releases )`
|
||||
@ -40,8 +35,7 @@ and put both into `res://android/plugins`.
|
||||
The plugin should now show up in the Android export settings, where you can enable it.
|
||||
|
||||
|
||||
Getting started
|
||||
***************
|
||||
#### Getting started
|
||||
|
||||
To use the `PandemoniumGooglePlayBilling` API you first have to get the `PandemoniumGooglePlayBilling`
|
||||
singleton and start the connection:
|
||||
@ -75,8 +69,7 @@ singleton and start the connection:
|
||||
All API methods only work if the API is connected. You can use `payment.isReady()` to check the connection status.
|
||||
|
||||
|
||||
Querying available items
|
||||
************************
|
||||
#### Querying available items
|
||||
|
||||
As soon as the API is connected, you can query SKUs using `querySkuDetails`.
|
||||
|
||||
@ -92,8 +85,7 @@ Full example:
|
||||
```
|
||||
|
||||
|
||||
Purchase an item
|
||||
****************
|
||||
#### Purchase an item
|
||||
|
||||
To initiate the purchase flow for an item, call `purchase`.
|
||||
You **must** query the SKU details for an item before you can
|
||||
@ -117,8 +109,7 @@ Then, wait for the `on_purchases_updated` callback and handle the purchase resul
|
||||
```
|
||||
|
||||
|
||||
Check if the user purchased an item
|
||||
***********************************
|
||||
#### Check if the user purchased an item
|
||||
|
||||
To get all purchases, call `queryPurchases`. Unlike most of the other functions, `queryPurchases` is
|
||||
a synchronous operation and returns a `Dictionary` with a status code
|
||||
@ -138,8 +129,7 @@ Full example:
|
||||
```
|
||||
|
||||
|
||||
Consumables
|
||||
***********
|
||||
#### Consumables
|
||||
|
||||
If your in-app item is not a one-time purchase but a consumable item (e.g. coins) which can be purchased
|
||||
multiple times, you can consume an item by calling `consumePurchase` with a purchase token.
|
||||
@ -157,8 +147,7 @@ Consuming a product allows the user to purchase it again, and removes it from ap
|
||||
# Or wait for the _on_purchase_consumed callback before giving the user what they bought
|
||||
```
|
||||
|
||||
Subscriptions
|
||||
*************
|
||||
#### Subscriptions
|
||||
|
||||
Subscriptions don't work much different from regular in-app items. Just use `"subs"` as second
|
||||
argument to `querySkuDetails` to get subscription details.
|
||||
|
@ -1,14 +1,12 @@
|
||||
|
||||
|
||||
Creating iOS plugins
|
||||
====================
|
||||
# Creating iOS plugins
|
||||
|
||||
This page explains what iOS plugins can do for you, how to use an existing plugin, and the steps to code a new one.
|
||||
|
||||
iOS plugins allow you to use third-party libraries and support iOS-specific features like In-App Purchases, GameCenter integration, ARKit support, and more.
|
||||
|
||||
Loading and using an existing plugin
|
||||
------------------------------------
|
||||
## Loading and using an existing plugin
|
||||
|
||||
An iOS plugin requires a `.gdip` configuration file, a binary file which can be either `.a` static library or `.xcframework` containing `.a` static libraries, and possibly other dependencies. To use it, you need to:
|
||||
|
||||
@ -28,8 +26,7 @@ When a plugin is active, you can access it in your using `Engine.get_singleton()
|
||||
print(singleton.foo())
|
||||
```
|
||||
|
||||
Creating an iOS plugin
|
||||
----------------------
|
||||
#### Creating an iOS plugin
|
||||
|
||||
At its core, a Pandemonium iOS plugin is an iOS library (*.a* archive file or *.xcframework* containing static libraries) with the following requirements:
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
|
||||
|
||||
Plugins for iOS
|
||||
===============
|
||||
# Plugins for iOS
|
||||
|
||||
Pandemonium provides StoreKit, GameCenter, iCloud services and other plugins.
|
||||
They are using same model of asynchronous calls explained below.
|
||||
@ -10,8 +9,7 @@ ARKit and Camera access are also provided as plugins.
|
||||
|
||||
Latest updates, documentation and source code can be found at `Pandemonium iOS plugins repository ( https://github.com/Relintai/pandemonium_engine-ios-plugins )`
|
||||
|
||||
Accessing plugin singletons
|
||||
---------------------------
|
||||
## Accessing plugin singletons
|
||||
|
||||
To access plugin functionality, you first need to check that the plugin is
|
||||
exported and available by calling the `Engine.has_singleton()` function, which
|
||||
@ -36,8 +34,7 @@ Here's an example of how to do this in GDScript:
|
||||
```
|
||||
|
||||
|
||||
Asynchronous methods
|
||||
--------------------
|
||||
## Asynchronous methods
|
||||
|
||||
When requesting an asynchronous operation, the method will look like
|
||||
this:
|
||||
@ -87,8 +84,7 @@ The pending event interface consists of two methods:
|
||||
- `Variant pop_pending_event()`
|
||||
Pops the first event from the queue and returns it.
|
||||
|
||||
Store Kit
|
||||
---------
|
||||
## Store Kit
|
||||
|
||||
Implemented in `Pandemonium iOS InAppStore plugin ( https://github.com/Relintai/pandemonium_engine-ios-plugins/blob/master/plugins/inappstore/in_app_store.mm )`.
|
||||
|
||||
@ -112,15 +108,13 @@ The following methods are available and documented below:
|
||||
Variant pop_pending_event()
|
||||
```
|
||||
|
||||
`purchase`
|
||||
~~~~~~~~~~~~
|
||||
### `purchase`
|
||||
|
||||
Purchases a product ID through the Store Kit API. You have to call `finish_transaction(product_id)` once you
|
||||
receive a successful response or call `set_auto_finish_transaction(true)` prior to calling `purchase()`.
|
||||
These two methods ensure the transaction is completed.
|
||||
|
||||
Parameters
|
||||
^^^^^^^^^^
|
||||
#### Parameters
|
||||
|
||||
Takes a dictionary as a parameter, with one field, `product_id`, a
|
||||
string with your product ID. Example:
|
||||
@ -129,8 +123,7 @@ string with your product ID. Example:
|
||||
var result = in_app_store.purchase({ "product_id": "my_product" })
|
||||
```
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -154,13 +147,11 @@ On success:
|
||||
}
|
||||
```
|
||||
|
||||
`request_product_info`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### `request_product_info`
|
||||
|
||||
Requests the product info on a list of product IDs.
|
||||
|
||||
Parameters
|
||||
^^^^^^^^^^
|
||||
#### Parameters
|
||||
|
||||
Takes a dictionary as a parameter, with a single `product_ids` key to which a
|
||||
string array of product IDs is assigned. Example:
|
||||
@ -169,8 +160,7 @@ string array of product IDs is assigned. Example:
|
||||
var result = in_app_store.request_product_info({ "product_ids": ["my_product1", "my_product2"] })
|
||||
```
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -187,14 +177,12 @@ The response event will be a dictionary with the following fields:
|
||||
}
|
||||
```
|
||||
|
||||
`restore_purchases`
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
### `restore_purchases`
|
||||
|
||||
Restores previously made purchases on user's account. This will create
|
||||
response events for each previously purchased product ID.
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response events will be dictionaries with the following fields:
|
||||
|
||||
@ -206,14 +194,12 @@ The response events will be dictionaries with the following fields:
|
||||
}
|
||||
```
|
||||
|
||||
`set_auto_finish_transaction`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### `set_auto_finish_transaction`
|
||||
|
||||
If set to `true`, once a purchase is successful, your purchase will be
|
||||
finalized automatically. Call this method prior to calling `purchase()`.
|
||||
|
||||
Parameters
|
||||
^^^^^^^^^^
|
||||
#### Parameters
|
||||
|
||||
Takes a boolean as a parameter which specifies if purchases should be
|
||||
automatically finalized. Example:
|
||||
@ -222,15 +208,13 @@ automatically finalized. Example:
|
||||
in_app_store.set_auto_finish_transaction(true)
|
||||
```
|
||||
|
||||
`finish_transaction`
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
### `finish_transaction`
|
||||
|
||||
If you don't want transactions to be automatically finalized, call this
|
||||
method after you receive a successful purchase response.
|
||||
|
||||
|
||||
Parameters
|
||||
^^^^^^^^^^
|
||||
#### Parameters
|
||||
|
||||
Takes a string `product_id` as an argument. `product_id` specifies what product to
|
||||
finalize the purchase on. Example:
|
||||
@ -239,8 +223,7 @@ finalize the purchase on. Example:
|
||||
in_app_store.finish_transaction("my_product1")
|
||||
```
|
||||
|
||||
Game Center
|
||||
-----------
|
||||
## Game Center
|
||||
|
||||
Implemented in `Pandemonium iOS GameCenter plugin ( https://github.com/Relintai/pandemonium_engine-ios-plugins/blob/master/plugins/gamecenter/game_center.mm )`.
|
||||
|
||||
@ -266,13 +249,11 @@ and the pending events interface:
|
||||
Variant pop_pending_event()
|
||||
```
|
||||
|
||||
`authenticate`
|
||||
~~~~~~~~~~~~~~~~
|
||||
### `authenticate`
|
||||
|
||||
Authenticates a user in Game Center.
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -297,13 +278,11 @@ On success:
|
||||
}
|
||||
```
|
||||
|
||||
`post_score`
|
||||
~~~~~~~~~~~~~~
|
||||
### `post_score`
|
||||
|
||||
Posts a score to a Game Center leaderboard.
|
||||
|
||||
Parameters
|
||||
^^^^^^^^^^
|
||||
#### Parameters
|
||||
|
||||
Takes a dictionary as a parameter, with two fields:
|
||||
|
||||
@ -316,8 +295,7 @@ Example:
|
||||
var result = game_center.post_score({ "score": 100, "category": "my_leaderboard", })
|
||||
```
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -341,13 +319,11 @@ On success:
|
||||
}
|
||||
```
|
||||
|
||||
`award_achievement`
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
### `award_achievement`
|
||||
|
||||
Modifies the progress of a Game Center achievement.
|
||||
|
||||
Parameters
|
||||
^^^^^^^^^^
|
||||
#### Parameters
|
||||
|
||||
Takes a Dictionary as a parameter, with 3 fields:
|
||||
|
||||
@ -363,8 +339,7 @@ Example:
|
||||
var result = award_achievement({ "name": "hard_mode_completed", "progress": 6.1 })
|
||||
```
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -387,13 +362,11 @@ On success:
|
||||
}
|
||||
```
|
||||
|
||||
`reset_achievements`
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
### `reset_achievements`
|
||||
|
||||
Clears all Game Center achievements. The function takes no parameters.
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -416,14 +389,12 @@ On success:
|
||||
}
|
||||
```
|
||||
|
||||
`request_achievements`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### `request_achievements`
|
||||
|
||||
Request all the Game Center achievements the player has made progress
|
||||
on. The function takes no parameters.
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -448,14 +419,12 @@ On success:
|
||||
}
|
||||
```
|
||||
|
||||
`request_achievement_descriptions`
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
### `request_achievement_descriptions`
|
||||
|
||||
Request the descriptions of all existing Game Center achievements
|
||||
regardless of progress. The function takes no parameters.
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -485,14 +454,12 @@ On success:
|
||||
}
|
||||
```
|
||||
|
||||
`show_game_center`
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
### `show_game_center`
|
||||
|
||||
Displays the built in Game Center overlay showing leaderboards,
|
||||
achievements, and challenges.
|
||||
|
||||
Parameters
|
||||
^^^^^^^^^^
|
||||
#### Parameters
|
||||
|
||||
Takes a Dictionary as a parameter, with two fields:
|
||||
|
||||
@ -511,8 +478,7 @@ Examples:
|
||||
var result = show_game_center({ "view": "achievements" })
|
||||
```
|
||||
|
||||
Response event
|
||||
^^^^^^^^^^^^^^
|
||||
#### Response event
|
||||
|
||||
The response event will be a dictionary with the following fields:
|
||||
|
||||
@ -525,8 +491,7 @@ On close:
|
||||
}
|
||||
```
|
||||
|
||||
Multi-platform games
|
||||
--------------------
|
||||
### Multi-platform games
|
||||
|
||||
When working on a multi-platform game, you won't always have the
|
||||
"GameCenter" singleton available (for example when running on PC or
|
||||
|
@ -1,11 +0,0 @@
|
||||
|
||||
|
||||
HTML5
|
||||
=====
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:name: toc-learn-features-platform-html5
|
||||
|
||||
html5_shell_classref
|
||||
customizing_html5_shell
|
Loading…
Reference in New Issue
Block a user