<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gade</id>
	<title>Official Kodi Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gade"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/Gade"/>
	<updated>2026-06-15T05:50:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=243288</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=243288"/>
		<updated>2022-11-18T18:59:18Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Contact and support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised.&amp;lt;br/&amp;gt;&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate GNU gettext strings.po files.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://kodi.tv/article/switching-translations-to-weblate/ In 2021 Kodi switched translation platform to Weblate.]&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
You can create a new account or use an existing Google, Facebook or Github account.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Or you can join the [https://forum.kodi.tv/showthread.php?tid=370465 official channel at Slack for all language and translation related discussions.]&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&amp;lt;br/&amp;gt;&lt;br /&gt;
It depends how many translations are done for a specific language, but usually new versions are released once a month.&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Rapier&amp;diff=243182</id>
		<title>Add-on:Rapier</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Rapier&amp;diff=243182"/>
		<updated>2022-10-11T09:58:00Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Media */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Rapier&lt;br /&gt;
|provider-name=Scarfa, Gade&lt;br /&gt;
|ID=skin.rapier&lt;br /&gt;
|latest-version=12.3.5&lt;br /&gt;
|extension point=xbmc.gui.skin&lt;br /&gt;
|provides=&lt;br /&gt;
|Summary=Rapier skin by Scarfa, Gade.&lt;br /&gt;
|Description=The goal is to provide a simple to use but clean and elegant interface that focuses on efficiency when browsing your media. Important considerations are put on usability, performance, and providing the user with flexibility when it comes to customization. Rapier tries to support all the latest features Kodi has to offer as long as it fits in with the skin&#039;s design goals.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported&lt;br /&gt;
|Forum=https://forum.kodi.tv/forumdisplay.php?fid=120&lt;br /&gt;
|Website=https://kodi.wiki/view/Add-on:Rapier&lt;br /&gt;
|Source=https://github.com/gade01/Rapier&lt;br /&gt;
|Email=&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/matrix/skin.rapier/resources/icon.png}}&lt;br /&gt;
&lt;br /&gt;
== Development version / Gade&#039;s Add-on Repository ==&lt;br /&gt;
&amp;lt;section begin=DevelopmentVersion/&amp;gt;I have created an add-on repository for Rapier and my other add-ons. This means that if you install this repository, you will always automatically receive the newest and freshest development updates of Rapier. You will still automatically get the official updates.&lt;br /&gt;
&lt;br /&gt;
To install this repository, you must do so by following these steps:&lt;br /&gt;
# [https://github.com/gade01/repository.gade/raw/master/leia/repository.gade/repository.gade-2.1.1.zip Download the zip file containing Gade&#039;s Add-on Repository from Github]&lt;br /&gt;
# Start Kodi&lt;br /&gt;
# Navigate to Settings&lt;br /&gt;
# Add-ons&lt;br /&gt;
# Install from zip file&lt;br /&gt;
# Locate the zip file you downloaded&lt;br /&gt;
# Install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Recommended Kodi settings:&lt;br /&gt;
* &#039;&#039;Settings &amp;gt; System &amp;gt; Add-ons &amp;gt; Updates&#039;&#039;:  &lt;br /&gt;
:- Install updates automatically&lt;br /&gt;
* &#039;&#039;Settings &amp;gt; System &amp;gt; Add-ons &amp;gt; Unknown sources&#039;&#039;:&lt;br /&gt;
:- Enabled&lt;br /&gt;
* &#039;&#039;Settings &amp;gt; System &amp;gt; Add-ons &amp;gt; Update official add-ons from (Kodi 19 Matrix only)&#039;&#039;:&lt;br /&gt;
:- Any repositories&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After this, you will automatically receive the latest development versions directly within Kodi.&lt;br /&gt;
&amp;lt;section end=DevelopmentVersion/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Required add-ons ==&lt;br /&gt;
&amp;lt;section begin=RequiredAdd-ons/&amp;gt;To get the most out of Rapier the following add-ons are required - they should be installed automatically when installing the skin. If this is not the case, please install using the XBMC Add-on Manager or manually using the links below. Certain skin features will not be available if one or more of these add-ons are not installed on your system.&lt;br /&gt;
&lt;br /&gt;
* [[Add-on:Favourites_script|Favourites]]&lt;br /&gt;
* [[forum:345471|Embuary Helper]] &#039;&#039;(Added from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:235676|Skin Helper Service]] &#039;&#039;(Moved to Supported Add-ons from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [https://github.com/marcelveldt/script.skin.helper.widgets Skin Helper Widgets] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:TV_Show_-_Next_Aired|TV Show Next Aired]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [http://mirrors.kodi.tv/addons/jarvis/resource.images.studios.white/ White Studio Icons add-on]&lt;br /&gt;
&amp;lt;section end=RequiredAdd-ons/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Supported add-ons (Kodi Add-on Repository Installation) ==&lt;br /&gt;
&amp;lt;section begin=SupportedAdd-ons1/&amp;gt;The following add-ons are supported by Rapier. They can be installed using the Kodi Add-on Manager or manually using the links below. &lt;br /&gt;
&lt;br /&gt;
* [[Add-on:Rapier_UI_Sounds|Rapier UI Sounds]]&lt;br /&gt;
* [[forum:235676|Skin Helper Service]] &#039;&#039;(Moved to Supported Add-ons from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:Artist_Slideshow|Artist Slideshow]]&lt;br /&gt;
* Artwork Downloader &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:Global_Search|Global Search]]&lt;br /&gt;
* [[forum:345847|TheMovieDb Helper]] &#039;&#039;(Added from Kodi 19 / Rapier 12)&#039;&#039;&lt;br /&gt;
* [https://github.com/marcelveldt/script.skin.helper.backgrounds Skin Helper Backgrounds] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:Random_and_Last_items_script|Random and Last items]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:239558|Image Resource Selection script]]&lt;br /&gt;
* [[Add-on:CU_LRC_Lyrics|CU LRC Lyrics]]&lt;br /&gt;
* CDArt Manager &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:335425|Weatherbit IO]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:352028|Multi Weather]] &#039;&#039;(Added from Rapier 12 / Kodi 19)&#039;&#039;&lt;br /&gt;
* [[Add-on:ExtendedInfo_Script|ExtendedInfo Script]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [https://github.com/marcelveldt/script.skin.helper.skinbackup Skin Helper Skinbackup]&lt;br /&gt;
* [[forum:336747|Up Next]]&lt;br /&gt;
* [[Add-on:Embuary_Info|Embuary Info]] &#039;&#039;(Added from Rapier 12 / Kodi 19)&#039;&#039;&lt;br /&gt;
* [[forum:231881|CinemaVision]]&lt;br /&gt;
* [[forum:224512|User Rating Script]]&lt;br /&gt;
* [https://github.com/phil65/script.module.t9.search T9 Search Script]&lt;br /&gt;
* [[forum:224512|Library Node Editor]]&lt;br /&gt;
* [[forum:200081|Audio Profiles]]&lt;br /&gt;
* [https://github.com/phil65/plugin.program.autocompletion Autocompletion for virtual keyboard]&lt;br /&gt;
* [[Add-on:Special_Features|Special Features]]&lt;br /&gt;
* &#039;&#039;Image resource genre icons, weather icons and genre fanart, weather fanart add-ons...&#039;&#039;&lt;br /&gt;
&amp;lt;section end=SupportedAdd-ons1/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Supported add-ons (Manual Installation) ==&lt;br /&gt;
&amp;lt;section begin=SupportedAdd-ons2/&amp;gt;The following add-ons are supported by Rapier. They can be installed manually using the links below. &lt;br /&gt;
&lt;br /&gt;
* [[forum:329767|Netflix Add-on]]&lt;br /&gt;
* [[forum:258886|Artwork Beef]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:133905|MyPicsDB]]&lt;br /&gt;
* [[forum:167754|IMDB Update]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:158775|Library Editor]]&lt;br /&gt;
* [https://github.com/phil65/script.youtube.browser Script.youtube.browser] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
&amp;lt;section end=SupportedAdd-ons2/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Special skin features ==&lt;br /&gt;
&amp;lt;section begin=Skin features/&amp;gt;{{Skin features&lt;br /&gt;
 | skin = [[Add-on:Rapier|Rapier]]&lt;br /&gt;
 | custom home items = {{yes}}&lt;br /&gt;
 | custom submenu items = {{yes}}&lt;br /&gt;
 | Media flags = {{yes}}&lt;br /&gt;
 | TV show logo = {{yes}}&lt;br /&gt;
 | TV logo downloader = {{yes}}&lt;br /&gt;
 | Artwork downloader = {{yes}}&lt;br /&gt;
 | Clear Art = {{yes}}&lt;br /&gt;
 | cdArt = {{yes}}&lt;br /&gt;
 | Extra fanart = {{yes}}&lt;br /&gt;
 | Season fanart = {{no}}&lt;br /&gt;
 | Weather fanart = {{yes}}&lt;br /&gt;
 | Live TV = {{yes}}&lt;br /&gt;
 | Next Aired = {{yes}}&lt;br /&gt;
 | TvTunes = {{yes}}&lt;br /&gt;
 | Advanced Launcher = {{no}}&lt;br /&gt;
 | Watchlist = {{yes}}&lt;br /&gt;
 | MovieSets = {{yes}}&lt;br /&gt;
 | Metadata Actors = {{yes}}&lt;br /&gt;
 | Cinema Experience = {{yes}}&lt;br /&gt;
 | Touch = {{yes}}&lt;br /&gt;
 | PVR = {{yes}}&lt;br /&gt;
 | Skin Widgets = {{yes}}&lt;br /&gt;
 | Intro movie = {{yes}}&lt;br /&gt;
 | Random And Last Items = {{yes}}&lt;br /&gt;
}}&lt;br /&gt;
* &#039;&#039;&#039;All of the above mentioned add-ons&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Custom home items]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Movie, tv show and music video clear logos and clear art&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Music clear logos and cd art&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Artwork|Extra fanart]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Touch support&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Splash screen (video, audio or image)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[PVR|PVR &amp;amp; Live TV/Radio]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Audio DSP support including all Audio DSP add-ons.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Games support&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;section end=Skin features/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;section begin=&amp;quot;screenshots&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Screenshots&amp;quot; widths=200px heights=113px&amp;gt;&lt;br /&gt;
File:Rapier_new_home_movies.png|Home screen Movies without widgets&lt;br /&gt;
File:skin.rapier_new_home_movies_widgets.jpg|Home screen Movies with widgets&lt;br /&gt;
File:Rapier02.jpg|Movies Thumbnail View&lt;br /&gt;
File:Rapier03.jpg|Movies Wrap Info View&lt;br /&gt;
File:Rapier04.jpg|Movies List Info 2 View&lt;br /&gt;
File:Rapier05.jpg|Movies Wall View&lt;br /&gt;
File:skin.rapier.16.png|Movies 3D Wrap View&lt;br /&gt;
File:Rapier_movie_genres.png|Movie Genres Extended List View&lt;br /&gt;
File:Rapier_new_tvshows.jpg|Home screen TV Shows with widgets&lt;br /&gt;
File:Rapier07.jpg|TV Shows Thumbs Info View (clear logo)&lt;br /&gt;
File:Rapier08.jpg|TV Shows Thumbs Info View (banners)&lt;br /&gt;
File:Rapier10.jpg|Movies Icon View (clear logo)&lt;br /&gt;
File:skin.rapier_fullscreen_video.jpg|Paused fullscreen video&lt;br /&gt;
File:Rapier_new_videos.jpg|Home screen Videos with add-on shortcuts&lt;br /&gt;
File:Rapier13.jpg|Music Albums List View&lt;br /&gt;
File:Rapier14.png|Music playing visualization 1&lt;br /&gt;
File:Skin.rapier fullscreen music.jpg|Music playing visualization 2&lt;br /&gt;
File:skin.rapier_custom_addons.png|Custom add-ons manager window&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;screenshots&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Videos ==&lt;br /&gt;
=== Kodi 15.x - Rapier Demo ===&lt;br /&gt;
{{youtube|CZQWrJYgTa0}}&lt;br /&gt;
=== Kodi / Rapier Splash Video ===&lt;br /&gt;
{{youtube|G-l_tIKgbzE}}&lt;br /&gt;
=== Video lyrics for fullscreen music playback in Rapier ===&lt;br /&gt;
{{youtube|O0TqCmvIRJ8}}&lt;br /&gt;
&lt;br /&gt;
== Tips and guides ==&lt;br /&gt;
=== Creating a custom category ===&lt;br /&gt;
:This is a step-by-step guide to adding a custom category. Up to 16 custom categories are available.&lt;br /&gt;
::1.  Go to Skin Settings &amp;gt; Home &amp;gt; Category Menu&lt;br /&gt;
::2.  Click &amp;quot;Add more categories&amp;quot;&lt;br /&gt;
::3.  Click &amp;quot;Category 1-4&amp;quot; to activate custom category 1-4, &amp;quot;Category 5-8&amp;quot; to activate custom category 5-8, &amp;quot;Category 9-12&amp;quot; to activate custom category 9-12 or &amp;quot;Category 13-16&amp;quot; to activate custom category 13-16&lt;br /&gt;
::4.  Choose between adding a custom category from one of your Favourites or from a built in skin preset. &lt;br /&gt;
::5.  &amp;quot;Path&amp;quot;:&lt;br /&gt;
:::*If you have chosen adding a custom category from a Favourite, a dialog will open up with all your favourites. You can add almost any item within Kodi to your Favourites using the context menu.&lt;br /&gt;
:::*If you have chosen adding a custom category from a built in skin preset, the presets dialog will open up. This allows you to choose any item in the sections or to enter a custom action yourself (bottom left item).&lt;br /&gt;
::6.  &amp;quot;Name&amp;quot;:&lt;br /&gt;
:::Enter a name for your custom category. If no name is entered, &amp;quot;Custom X&amp;quot; (where X is the custom category number) will be used.&lt;br /&gt;
::::If navigation buttons are disabled, it&#039;s recommended to use 11 characters or less for best results.&lt;br /&gt;
::::If navigation buttons are enabled, it&#039;s recommended to use 10 characters or less for best results.&lt;br /&gt;
::7.  You can choose a category icon from any location on your system.&lt;br /&gt;
::8.  You can add up to 6 add-on shortcuts.&lt;br /&gt;
::::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
::::Choose between any add-on.&lt;br /&gt;
::::Selecting an add-on shortcut will disable the category icon for the chosen category.&lt;br /&gt;
::9.  You can choose a widget. Adding a widget brings up a dialog:&lt;br /&gt;
:::*Movies, tv shows, music videos or albums will display recently added and in progress/featured items from your library. &lt;br /&gt;
:::*Add-ons will display random add-ons. &lt;br /&gt;
:::*Games will display all game add-ons.&lt;br /&gt;
:::*Playlist (movies, episodes or music) will display recently added and featured items from your selected playlist (useful when the custom category is a playlist from your favourites). &lt;br /&gt;
:::*In Cinemas / Upcoming Movies, Top Rated Movies / Top Rated TV Shows, Trending Movies / TV Shows will use the add-on script.extendedinfo to fill the widgets. &lt;br /&gt;
:::*Favourite &#039;&#039;(added from Rapier 12 / Kodi 19)&#039;&#039; will bring up a dialog to choose a custom top widget and a custom bottom widget using your favourites. You can choose either one, as both are not required. You can set the name and choose aspect (poster, wide or square) individually for both widgets.&lt;br /&gt;
:::*Custom &#039;&#039;(script.skinshortcuts required)&#039;&#039; will bring up a dialog to choose a custom top widget and a custom bottom widget. You can choose either one, as both are not required. You can set the name and choose aspect (poster, wide or square) individually for both widgets.&lt;br /&gt;
::10.  You can choose between 3 background options for your custom category.&lt;br /&gt;
:::*&amp;quot;Single image&amp;quot; will open up a dialog, where you can choose any image on your system as background for your custom category.&lt;br /&gt;
:::*&amp;quot;Multi image&amp;quot; will open up a dialog, where you can choose any folder with images on your system as multi backgrounds for your custom category.&lt;br /&gt;
:::*&amp;quot;Fanart&amp;quot; will open up a dialog, where you can choose one of the built in fanart options as background for your custom category.&lt;br /&gt;
:::The button below will display the chosen background option and the image to the left will display the image(s).&lt;br /&gt;
&lt;br /&gt;
=== Adding, removing or editing submenus ===&lt;br /&gt;
:This is a step-by-step guide to adding, removing or editing submenus. You can add up to 7 submenus for each category.&lt;br /&gt;
::*Go to Skin Settings &amp;gt; Home &amp;gt; Category Submenu. &lt;br /&gt;
:::All of your enabled categories are displayed here: Music / Videos / Movies / TV Shows / Add-ons / Pictures / General / System / Live TV / Weather / Custom Category 1-16&lt;br /&gt;
:::Clicking any of them allows you to add, remove or edit the submenus.&lt;br /&gt;
::*To &#039;&#039;&#039;remove&#039;&#039;&#039; an existing hardcoded submenu from the Music / Videos / Movies / TV Shows / Add-ons / Pictures / General / System / Live TV / Weather categories:&lt;br /&gt;
:::Enabling Button 1 and leaving everything else blank, will disable the existing submenu 1 for the chosen category and so on. Do this for all the submenu items you wish to remove.&lt;br /&gt;
::*To &#039;&#039;&#039;edit&#039;&#039;&#039; any submenu item for a category:&lt;br /&gt;
:::Enabling Button 1 and entering all the necessary information, will replace submenu 1 for the chosen category and so on. Do this for all the submenu items you wish to edit.&lt;br /&gt;
::::1.  Click Button 1 to 7 to edit the submenu item you wish.&lt;br /&gt;
::::2.  Choose between editing a submenu item using one of your Favourites, a built in skin preset, a script or an add-on.&lt;br /&gt;
::::3.  &amp;quot;Path&amp;quot;:&lt;br /&gt;
:::::If you have chosen editing a submenu item using one of your Favourites, a dialog will open up with all your favourites. You can add almost any item within Kodi to your Favourites using the context menu.&lt;br /&gt;
:::::If you have chosen editing a submenu item using a built in skin preset, the presets dialog will open up. This allows you to choose any item in the sections or to enter a custom action yourself (bottom left item).&lt;br /&gt;
:::::If you have chosen editing a submenu item using a script, a dialog will open up where you can select one of the scripts.&lt;br /&gt;
:::::If you have chosen editing a submenu item using an add-on, a dialog will open up where you can select one of the add-ons.&lt;br /&gt;
::::4.  &amp;quot;Label&amp;quot; allows you to enter the name of the submenu.&lt;br /&gt;
::*To &#039;&#039;&#039;add&#039;&#039;&#039; a submenu item for any category:&lt;br /&gt;
:::You can add additional submenus to a category with less than 7 submenu items: eg. if a category has 4 submenus, you can enable Button 5, 6 and 7 to add 3 additional custom submenus.&lt;br /&gt;
::::1.  Click Button 1 to 7 to add the submenu item you wish.&lt;br /&gt;
::::2.  Choose between adding a submenu item from one of your Favourites, a built in skin preset, a script or an add-on.&lt;br /&gt;
::::3.  &amp;quot;Path&amp;quot;:&lt;br /&gt;
:::::If you have chosen adding a submenu item from a Favourite, a dialog will open up with all your favourites. You can add almost any item within Kodi to your Favourites using the context menu.&lt;br /&gt;
:::::If you have chosen adding a submenu item from a built in skin preset, the presets dialog will open up. This allows you to choose any item in the sections or to enter a custom action yourself (bottom left item).&lt;br /&gt;
:::::If you have chosen adding a submenu item from a script, a dialog will open up where you can select one of the scripts.&lt;br /&gt;
:::::If you have chosen adding a submenu item from an add-on, a dialog will open up where you can select one of the add-ons.&lt;br /&gt;
::::4.  &amp;quot;Label&amp;quot; allows you to enter the name of the submenu.&lt;br /&gt;
&lt;br /&gt;
=== Proper naming of files ===&lt;br /&gt;
:Rapier reads all file names.&lt;br /&gt;
:If you use some of the below tags in the file name, additional media flags are displayed automatically.&lt;br /&gt;
::* &amp;quot;bluray&amp;quot; / &amp;quot;blu-ray&amp;quot; / &amp;quot;bdrip&amp;quot; / &amp;quot;brrip&amp;quot; / &amp;quot;bdremux&amp;quot; / &amp;quot;bd25&amp;quot; / &amp;quot;bd50&amp;quot;: displays a Blu-ray logo&lt;br /&gt;
::* &amp;quot;web-dl&amp;quot; / &amp;quot;web-download&amp;quot; / &amp;quot;webrip&amp;quot;: displays a web-dl logo&lt;br /&gt;
::* &amp;quot;.3d.&amp;quot; / &amp;quot;hsbs&amp;quot; / &amp;quot;sbs&amp;quot; / &amp;quot;half-sbs&amp;quot;: displays a 3D logo&lt;br /&gt;
:::The stereoscopic mode can also be automatically detected by Kodi, so you might see this logo without the tags in the file name.&lt;br /&gt;
::* &amp;quot;hddvd&amp;quot; / &amp;quot;hd-dvd&amp;quot;: displays a HD-DVD logo&lt;br /&gt;
::* &amp;quot;dvd&amp;quot; / &amp;quot;dvdrip&amp;quot;: displays a DVD logo&lt;br /&gt;
:::The DVD logo will also be displayed if the file extension is: .img / .ifo / .vob&lt;br /&gt;
::* &amp;quot;hdtv&amp;quot;: displays a HD TV logo&lt;br /&gt;
::* &amp;quot;sdtv&amp;quot; / &amp;quot;pdtv&amp;quot;: displays a SD TV logo&lt;br /&gt;
::* &amp;quot;vhs&amp;quot;: displays a VHS logo&lt;br /&gt;
::* &amp;quot;.atmos&amp;quot;: if your file contains either TrueHD or E-AC3 (Dolby Digital Plus) audio, a Dolby Atmos logo will display&lt;br /&gt;
::* &amp;quot;dtsx&amp;quot; / &amp;quot;dts-x&amp;quot;: if your file contains DTS-HD Master Audio, a DTS:X logo will display&lt;br /&gt;
::* &amp;quot;dtses&amp;quot; / &amp;quot;dts-es&amp;quot;: if your file contains DTS Audio, a DTS-ES logo will display&lt;br /&gt;
::* &amp;quot;.bdxl&amp;quot; / &amp;quot;bd66&amp;quot; / &amp;quot;bd100&amp;quot;: displays an Ultra-HD Blu-ray logo&lt;br /&gt;
::* &amp;quot;.unrated&amp;quot;: displays an &amp;quot;Unrated&amp;quot; media flag&lt;br /&gt;
::* &amp;quot;missingvideo&amp;quot; or &amp;quot;Missingvideo&amp;quot; will grey out a missing movie or episode. [[Add-on:Rapier#Using_the_missing_movie_or_episode_feature|Click here for details.]]&lt;br /&gt;
&lt;br /&gt;
=== Using the missing movie or episode feature ===&lt;br /&gt;
:&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:You can add the missing movies for a movie set and missing episodes for tv shows. They will be greyed out in the listing, so it&#039;s easy to see which ones are missing. &lt;br /&gt;
::&#039;&#039;What is required for missing movies:&#039;&#039;&lt;br /&gt;
:::*Use any video file in any format (the smaller size, the better).&lt;br /&gt;
:::*Create a movie folder for the missing movie (like you normally do for movies)&lt;br /&gt;
:::*Name the file anything and add &amp;quot;Missingvideo&amp;quot; or &amp;quot;missingvideo&amp;quot; anywhere in the filename.&lt;br /&gt;
::::- Eg. &amp;quot;Star.Wars.The.Rise.of.Skywalker.2019.missingvideo.mp4&amp;quot;&lt;br /&gt;
:::*Scrape the movie into your library and you&#039;re done.&lt;br /&gt;
::&#039;&#039;What is required for episodes:&#039;&#039;&lt;br /&gt;
:::*Use any video file in any format (the smaller size, the better).&lt;br /&gt;
:::*Place the file in your tv show folder and give it the appropiate episode number and name.&lt;br /&gt;
:::*Add &amp;quot;Missingvideo&amp;quot; or &amp;quot;missingvideo&amp;quot; anywhere in the filename.&lt;br /&gt;
::::- Eg. &amp;quot;Simpsons.S20E18.missingvideo.mp4&amp;quot;&lt;br /&gt;
:::*Scrape the episode into your library and you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
=== Missing tv show clear logos in the TV Shows Today widget in the home screen ===&lt;br /&gt;
:Go to Skin Settings -&amp;gt; Add-ons -&amp;gt; Artwork Downloader -&amp;gt; Download Presets - TV Shows -&amp;gt; Click the Clear Logo button and wait for the script to finish. This should add all clear logos for the tv shows to your library. You can do this with clear art as well if you wish.&lt;br /&gt;
&lt;br /&gt;
=== Missing Upcoming TV Shows widget ===&lt;br /&gt;
:If you don&#039;t see the Upcoming TV Shows widget on the home screen, you probably need to enable it in the Tv Show - Next Aired add-on settings.&lt;br /&gt;
::* Go to Add-ons &amp;gt; My Add-ons &amp;gt; Program Add-ons &amp;gt; TV Show - Next Aired &amp;gt; Settings&lt;br /&gt;
::* ENABLE the setting &amp;quot;Show all tv shows for home screen (needs skin support)&amp;quot;&lt;br /&gt;
::* Restart Kodi&lt;br /&gt;
&lt;br /&gt;
=== ExtendedInfo (using script.extendedinfo) for movie/tv show cast/crew members ===&lt;br /&gt;
:To activate ExtendedInfo for movie/tv show cast members, press down from the selected cast member in the video information window. &lt;br /&gt;
:You can click any director/writer throughout the skin to activate ExtendedInfo.&lt;br /&gt;
&lt;br /&gt;
=== Mouse / touch device support ===&lt;br /&gt;
:Mouse and touch devices are indeed supported by this skin.&lt;br /&gt;
:To make the most of your experience, make sure these skin settings are set:&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Hide dialog close buttons &amp;gt; DISABLED&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Hide top options menu bar (only show when selected) &amp;gt; DISABLED&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Hide top bar when idle &amp;gt; DISABLED&lt;br /&gt;
::*Skin Settings &amp;gt; Home &amp;gt; Show navigation buttons &amp;gt; ENABLED&lt;br /&gt;
&lt;br /&gt;
=== Low powered devices ===&lt;br /&gt;
:Rapier can be a bit rough on lower powered devices. Especially entering libraries for the first time after launch can take a while.&lt;br /&gt;
:Several skin settings have been made to improve performance:&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Enable low CPU power mode&lt;br /&gt;
:::&#039;&#039;When enabled, you can choose between these two options:&#039;&#039;&lt;br /&gt;
:::1. Disable animations only. Selecting this option will disable selected animations.&lt;br /&gt;
:::2. Disable animations and CPU demanding skin settings. Selecting this option will disable selected animations AND these CPU demanding skin settings:&lt;br /&gt;
::::* Video playing in the background&lt;br /&gt;
::::* Play trailers in a window&lt;br /&gt;
::::* Music CD art&lt;br /&gt;
::::* Animated backgrounds and fanart (both music and video)&lt;br /&gt;
::::* Music visualization and artist fanart in the background (when playing music)&lt;br /&gt;
::::* Fanart slideshow using script.artistslideshow (when playing music)&lt;br /&gt;
::*Skin Settings &amp;gt; Views&lt;br /&gt;
:::Here you can disable &#039;&#039;&#039;all&#039;&#039;&#039; view types you don&#039;t use in all windows and sections of Kodi.&lt;br /&gt;
:::TIP: Disabling &#039;&#039;&#039;every single&#039;&#039;&#039; view type you don&#039;t use will significantly speed up load times when entering windows and libraries.&lt;br /&gt;
&lt;br /&gt;
== Skin Settings ==&lt;br /&gt;
Rapier is highly customizable and has a great deal of skin settings. This section details all the skin settings options for Rapier.&lt;br /&gt;
=== General ===&lt;br /&gt;
:&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable kiosk mode&#039;&#039;&#039;&lt;br /&gt;
:::Once you&#039;ve got everything set up the way you want, you can enable &amp;quot;kiosk mode&amp;quot; to lock your chosen views and hide selected buttons / functions.&lt;br /&gt;
::&#039;&#039;&#039;Enable low CPU power mode&#039;&#039;&#039;&lt;br /&gt;
:::This setting might improve performance on lower powered systems.&lt;br /&gt;
::::&#039;&#039;When enabled, you can choose between these two options:&#039;&#039;&lt;br /&gt;
::::* Disable animations only. Selecting this option will disable selected animations.&lt;br /&gt;
::::* Disable animations and CPU demanding skin settings. Selecting this option will disable selected animations AND these CPU demanding skin settings:&lt;br /&gt;
:::::* Video playing in the background&lt;br /&gt;
:::::* Play trailers in a window&lt;br /&gt;
:::::* Music CD art&lt;br /&gt;
:::::* Animated backgrounds and fanart (both music and video)&lt;br /&gt;
:::::* Music visualization and artist fanart in the background (when playing music)&lt;br /&gt;
:::::* Fanart slideshow using script.artistslideshow (when playing music)&lt;br /&gt;
::&#039;&#039;&#039;Hide dialog close buttons&#039;&#039;&#039;&lt;br /&gt;
:::Hides the dialog close buttons on all dialogs. Dialog close buttons are very useful when using a mouse or touch device.&lt;br /&gt;
::&#039;&#039;&#039;Hide date&#039;&#039;&#039;&lt;br /&gt;
:::Hides the date in the top status bar.&lt;br /&gt;
::&#039;&#039;&#039;Date format&#039;&#039;&#039;&lt;br /&gt;
:::Choose the date format according to your region: UK / Australia / Central Europa / India or USA / Canada.&lt;br /&gt;
::&#039;&#039;&#039;Hide top options menu bar (only show when selected)&#039;&#039;&#039;&lt;br /&gt;
:::This will permanently show the menu bar in the library or hide it. If you choose to hide it, it will only be visible when focused.&lt;br /&gt;
::&#039;&#039;&#039;Hide top bar when idle&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This setting is only enabled when the setting &amp;quot;Hide top options menu bar&amp;quot; above is enabled.&#039;&#039;&lt;br /&gt;
:::This will hide the top bar, when the system has been left idle for 3 seconds. The top bar will still be visible, when the top options menu bar is visible.&lt;br /&gt;
::&#039;&#039;&#039;Use scrollbar / Use quick jump&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This setting requires [[Add-on:Skin_Helper_Service|script.skin.helper.service]].&#039;&#039;&lt;br /&gt;
:::Use scrollbar: Choose this to enable scrollbars throughout the skin.&lt;br /&gt;
:::Use quick jump: Choose this to enable quick jump alphabet navigation wherever possible.&lt;br /&gt;
::&#039;&#039;&#039;Enable battery notification&#039;&#039;&#039;&lt;br /&gt;
:::If you enable this option, a battery notification will be displayed in the top status bar. This will only be visible when using a battery powered device.&lt;br /&gt;
::&#039;&#039;&#039;Enable autocompletions for keyboard dialog&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This setting requires [[Add-on:ExtendedInfo_Script|script.extendedinfo]].&#039;&#039;&lt;br /&gt;
:::This setting enables autocompletions by Google or Youtube for the keyboard dialog in Kodi. They show up as up to 9 clickable suggestions below the actual keyboard.&lt;br /&gt;
:&#039;&#039;&#039;STARTUP&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Rapier 11 / Kodi 18 Leia only: This section requires [[Add-on:Skin_Helper_Service|script.skin.helper.service]].&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Rapier 12 / Kodi 19 Matrix has built in support for this feature.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable splash screen (photo, video or music)&#039;&#039;&#039;&lt;br /&gt;
:::This allows you to enable the setting and choose a video, image or piece of music to play as a splash screen when Kodi starts up.&lt;br /&gt;
::&#039;&#039;&#039;File&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19 Matrix&#039;&#039;&lt;br /&gt;
:::This allows you to choose a video, image or piece of music to play as a splash screen when Kodi starts up.&lt;br /&gt;
::&#039;&#039;&#039;Splash screen image duration&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This button is only visible if an image is chosen as splash screen.&#039;&#039;&lt;br /&gt;
:::Pressing this button brings up a numeric dialog where you can set the amount of time the image is displayed. Defaults to 5 seconds.&lt;br /&gt;
::&#039;&#039;&#039;Preview&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This button is only visible if splash screen is enabled.&#039;&#039;&lt;br /&gt;
:::Pressing this button will preview your chosen media.&lt;br /&gt;
&lt;br /&gt;
=== Home ===&lt;br /&gt;
:&#039;&#039;&#039;HOME&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Show navigation buttons&#039;&#039;&#039;&lt;br /&gt;
:::This will display navigation buttons in each side of the category menu and can be very useful to mouse or touch device users.&lt;br /&gt;
::&#039;&#039;&#039;Enable music playing progressbar&#039;&#039;&#039;&lt;br /&gt;
:::When playing music and leaving the system idle for 5 seconds, the category section will turn into a progressbar.&lt;br /&gt;
:&#039;&#039;&#039;CATEGORY MENU&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Use white / coloured categories&#039;&#039;&#039;&lt;br /&gt;
:::Toggle this button to switch between white and coloured home screen category names. The coloured categories will follow the chosen theme - blue, red or orange.&lt;br /&gt;
::&#039;&#039;&#039;Change category actions&#039;&#039;&#039;&lt;br /&gt;
:::Here you can change the functions of all main home screen categories. Clicking a category name will open up a dialog.&lt;br /&gt;
:::Full support for all library nodes.&lt;br /&gt;
::&#039;&#039;&#039;Hide categories&#039;&#039;&#039;&lt;br /&gt;
:::Select to hide main categories: Music, Videos, Movies, TV Shows, Add-ons, Pictures, General, System, TV, Radio, Weather, Power.&lt;br /&gt;
::&#039;&#039;&#039;Add more categories&#039;&#039;&#039;&lt;br /&gt;
:::Add up to 16 custom categories to the home screen and choose between any favourite (add-ons, playlists, paths etc.) or a built-in skin preset. You can choose your own icon, category image (name of the category), background and add a custom widget. &lt;br /&gt;
:::&#039;&#039;[[Add-on:Rapier#Creating_a_custom_category|Click here for a detailed guide on creating a custom category.]]&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Reorder categories&#039;&#039;&#039;&lt;br /&gt;
:::Use this menu to completely reorder all home screen categories.&lt;br /&gt;
:::Category 1 will be the startup category when launching Kodi.&lt;br /&gt;
:::&#039;&#039;Please make sure all categories are used, or you will end up missing categories!&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;CATEGORY SUBMENU&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide submenus&#039;&#039;&#039;&lt;br /&gt;
:::Hides all submenus.&lt;br /&gt;
::&#039;&#039;&#039;Music / Videos / Movies / TV Shows / Programs / Add-ons / Games / Pictures / General / System / Live TV / Weather / Custom Category 1-16&#039;&#039;&#039;&lt;br /&gt;
:::You can remove, edit or create up to 7 custom submenus for each category using any favourite (add-ons, playlists, paths etc.), built-in skin preset, script or plugin. This is very useful in a lot of different ways.&lt;br /&gt;
:::&#039;&#039;[[Add-on:Rapier#Adding.2C_removing_or_editing_submenus|Click here for a detailed guide on adding, removing or editing a submenu item.]]&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;CATEGORY ICON&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide category icons&#039;&#039;&#039;&lt;br /&gt;
:::Hides all category icons.&lt;br /&gt;
::&#039;&#039;&#039;Custom category icon&#039;&#039;&#039;&lt;br /&gt;
:::Select a custom category icon for the main categories.&lt;br /&gt;
:&#039;&#039;&#039;INFO PANEL&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide now playing&#039;&#039;&#039;&lt;br /&gt;
:::When playing music or video, Rapier will display a Now Playing widget. This setting allows you to hide the widget.&lt;br /&gt;
::&#039;&#039;&#039;Hide recently added&#039;&#039;&#039;&lt;br /&gt;
:::Hide the Recently Added widget. Enabling this will also hide the In Progress widget.&lt;br /&gt;
::&#039;&#039;&#039;Hide &amp;quot;in progress&amp;quot; / random&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the In Progress widget.&lt;br /&gt;
::&#039;&#039;&#039;Hide in cinemas / upcoming movies&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [[Add-on:ExtendedInfo_Script|script.extendedinfo]] (minimum version 3.0.0)&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the In Cinemas / Upcoming Movies widget for the movie category.&lt;br /&gt;
::&#039;&#039;&#039;Hide tv show next aired&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the TV Show Next Aired widget for the tv shows category.&lt;br /&gt;
::&#039;&#039;&#039;Hide videos&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the video widget for the Videos category.&lt;br /&gt;
::&#039;&#039;&#039;Hide Add-ons&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the Add-on widgets for the Add-ons category.&lt;br /&gt;
::&#039;&#039;&#039;Hide Games&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the Games widget for the Games category.&lt;br /&gt;
::&#039;&#039;&#039;Hide favourites&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the favourites widget for the general category. If the weather category is disabled, the weather widget is displayed for the general category instead.&lt;br /&gt;
::&#039;&#039;&#039;Hide weather&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the weather widget for the weather category.&lt;br /&gt;
::&#039;&#039;&#039;Hide PVR channels&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the PVR channels / recordings widgets for the TV / Radio category.&lt;br /&gt;
::&#039;&#039;&#039;Hide recording information&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the recording information widgets when recording tv / radio.&lt;br /&gt;
::&#039;&#039;&#039;Hide system information&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the system information widget for the system category.&lt;br /&gt;
:&#039;&#039;&#039;ADD-ON SHORTCUTS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable add-on shortcut titles&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will display add-on titles for each of the add-on shortcuts.&lt;br /&gt;
::&#039;&#039;&#039;Videos / Movies / TV Shows / Music / Pictures / Programs / Add-ons / General&#039;&#039;&#039;&lt;br /&gt;
:::Select up to 6 add-on shortcuts for each category. Selecting an add-on shortcut will disable the category icon for the chosen category.&lt;br /&gt;
&lt;br /&gt;
=== Media ===&lt;br /&gt;
:&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Select rating&#039;&#039;&#039;&lt;br /&gt;
:::This will open a dialog to select if the ratings used in media windows are the default ratings or user ratings (&amp;quot;My rating&amp;quot;).&lt;br /&gt;
:&#039;&#039;&#039;VIDEOS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Play trailers in a window (video information window)&#039;&#039;&#039;&lt;br /&gt;
:::This will play trailers in windowed mode in the video information window only.&lt;br /&gt;
::&#039;&#039;&#039;Right clicking scrollbar plays trailer&#039;&#039;&#039;&lt;br /&gt;
:::This setting will disable the playback of trailers when moving right or down from a scrollbar inside the video libraries.&lt;br /&gt;
::&#039;&#039;&#039;Use alternative duration&#039;&#039;&#039;&lt;br /&gt;
:::By default Kodi displays duration of videos in minutes (eg. 112 minutes). Enabling this setting will display the duration in hours and minutes (eg. 1h52).&lt;br /&gt;
::&#039;&#039;&#039;Select movie genre icon pack&#039;&#039;&#039;&lt;br /&gt;
:::This setting allows you to select an image resource add-on genre pack to use with the skin. I recommend installing Xzener&#039;s Reflected Icons.&lt;br /&gt;
:::Defaults to use the skin.rapier/extras/moviegenres/ folder for manually adding images if no image resource add-on is selected.&lt;br /&gt;
:&#039;&#039;&#039;VIDEO PLAYING&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable video playing in the background&#039;&#039;&#039;&lt;br /&gt;
:::When playing video, this setting will enable the video playing in the background throughout the skin.&lt;br /&gt;
:&#039;&#039;&#039;FULLSCREEN VIDEO&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide seekbar OSD during fullscreen playback&#039;&#039;&#039;&lt;br /&gt;
:::Hides the seekbar when playing fullscreen audio or video.&lt;br /&gt;
::&#039;&#039;&#039;Show information when paused&#039;&#039;&#039;&lt;br /&gt;
:::Shows the information dialog, when video is paused.&lt;br /&gt;
::&#039;&#039;&#039;Automatically close OSD&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This will automatically close the OSD, when the system has been idle for x seconds.&lt;br /&gt;
::&#039;&#039;&#039;OSD autoclose time (seconds)&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This is the time in seconds before the OSD will automatically close, when the system is idle.&lt;br /&gt;
:::Defaults to 4 seconds.&lt;br /&gt;
::&#039;&#039;&#039;Show clear art on OSD&#039;&#039;&#039;&lt;br /&gt;
:::Displays clear art images on the OSD when playing movies or tv show episodes. If no clear art is available, a clear logo will be displayed. If no clear logo is available, the cover image will be displayed. Clear art and clear logos require the add-on Artwork Downloader. You can either run Artwork Downloader in the background using the add-on&#039;s settings, manually download the artwork in the movie or tv show library or download using Rapier&#039;s Add-ons skin settings section.&lt;br /&gt;
::&#039;&#039;&#039;Show clear logo on OSD&#039;&#039;&#039;&lt;br /&gt;
:::Displays clear logo images on the OSD when playing movies or tv show episodes. If no clear logo is available, the cover image will be displayed. Clear logos require the add-on Artwork Downloader. You can either run Artwork Downloader in the background using the add-on&#039;s settings, manually download the artwork in the movie or tv show library or download using Rapier&#039;s Add-ons skin settings section.&lt;br /&gt;
::&#039;&#039;&#039;Show &amp;quot;Paused&amp;quot; in fullscreen video&#039;&#039;&#039;&lt;br /&gt;
:::When pausing fullscreen video, this setting will dim the screen slighly and display a &amp;quot;Paused&amp;quot; label.&lt;br /&gt;
:&#039;&#039;&#039;TV SHOWS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Use banner / poster layout&#039;&#039;&#039;&lt;br /&gt;
:::Choose between displaying tv show poster or banner images throughout the skin.&lt;br /&gt;
:&#039;&#039;&#039;TV / RADIO&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This section will only be visible if live tv / PVR is enabled.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Select multi image path for tv channels / recordings&#039;&#039;&#039;&lt;br /&gt;
:::Use this option to select a folder of images (or a folder with a single image) to be used in the tv channels / recordings view.&lt;br /&gt;
:::If no folder is selected, the default images will be used.&lt;br /&gt;
::&#039;&#039;&#039;Select multi image path for radio channels / recordings&#039;&#039;&#039;&lt;br /&gt;
:::Use this option to select a folder of images (or a folder with a single image) to be used in the radio channels / recordings view.&lt;br /&gt;
:::If no folder is selected, the default images will be used.&lt;br /&gt;
:&#039;&#039;&#039;MUSIC&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable music CD art&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will display CD Art images throughout the skin when playing music. This requires either the add-on CDArt Manager and/or manually adding cdart.png images to your music library folders.&lt;br /&gt;
::&#039;&#039;&#039;Select music library path for clear logos&#039;&#039;&#039;&lt;br /&gt;
:::Enter the path to your music library if you wish to enable clear logos in your Kodi music library.&lt;br /&gt;
:::&#039;&#039;Leaving this blank will disable clear logos in the music library.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Select music genre icon pack&#039;&#039;&#039;&lt;br /&gt;
:::This setting allows you to select an image resource add-on genre pack to use with the skin. I recommend installing Music Genre Icons - Text.&lt;br /&gt;
:::Defaults to use the skin.rapier/extras/musicgenres/ folder for manually adding images if no image resource add-on is selected.&lt;br /&gt;
:&#039;&#039;&#039;MUSIC PLAYING&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable fullscreen window when starting music&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Removed from Kodi 19 / Rapier 12. Go to &amp;quot;Settings &amp;gt; Media &amp;gt; Music &amp;gt; Switch to visualization on playback&amp;quot; instead.&#039;&#039;&lt;br /&gt;
:::Enabling this setting will immediately open up the fullscreen music window when music playback is started.&lt;br /&gt;
::&#039;&#039;&#039;Enable music visualization / artist fanart in the background&#039;&#039;&#039;&lt;br /&gt;
:::Enable this setting to display music visualization or artist fanart in the background throughout the skin when playing music.&lt;br /&gt;
::&#039;&#039;&#039;Choose background&#039;&#039;&#039;&lt;br /&gt;
:::Clicking this button will open up a dialog, where you can choose between these background options throughout the skin:&lt;br /&gt;
:::* Use only visualization for background&lt;br /&gt;
:::* Use only artist fanart for background&lt;br /&gt;
:::* Use both music visualization and artist fanart for background&lt;br /&gt;
::&#039;&#039;&#039;Fanart slideshow&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will display an artist slideshow in the background when playing music.&lt;br /&gt;
:::This setting requires the add-on [[Add-on:Artist_Slideshow|Artist Slideshow]] and the skin setting &amp;quot;Use only artist fanart for background&amp;quot; or &amp;quot;Use both music visualization and artist fanart for background&amp;quot;.&lt;br /&gt;
::&#039;&#039;&#039;Animate fanart backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will animate the fanart in the background throughout the skin when music is playing.&lt;br /&gt;
:::This requires the skin setting &amp;quot;Use only artist fanart for background&amp;quot; or &amp;quot;Use both music visualization and artist fanart for background&amp;quot;.&lt;br /&gt;
:&#039;&#039;&#039;FULLSCREEN MUSIC&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Show CD art and info in fullscreen music playback&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will display CD Art images in the music visualization when playing music. This requires either the add-on CDArt Manager and/or manually adding cdart.png images to your music library folders.&lt;br /&gt;
::&#039;&#039;&#039;Show &amp;quot;Paused&amp;quot; in fullscreen music&#039;&#039;&#039;&lt;br /&gt;
:::When pausing fullscreen music, this setting will dim the screen slighly and display a &amp;quot;Paused&amp;quot; label.&lt;br /&gt;
::&#039;&#039;&#039;Lyrics add-on&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::Select your preferred lyrics add-on to use in the music visualization window.&lt;br /&gt;
::&#039;&#039;&#039;Lyrics settings&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the selected lyrics add-on.&lt;br /&gt;
::&#039;&#039;&#039;Enable video lyrics&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [[Add-on:CU_LRC_Lyrics|CU LRC Lyrics]]&#039;&#039;&lt;br /&gt;
:::During fullscreen music playback, this will enable music video style animated lyrics in sync with the music playing.&lt;br /&gt;
:::&#039;&#039;[[Add-on:Rapier#Video_lyrics_for_fullscreen_music_playback_in_Rapier|Watch the video demo above.]]&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Automatically close OSD&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This will automatically close the OSD, when the system has been idle for x seconds.&lt;br /&gt;
::&#039;&#039;&#039;OSD autoclose time (seconds)&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This is the time in seconds before the OSD will automatically close, when the system is idle.&lt;br /&gt;
:::Defaults to 4 seconds.&lt;br /&gt;
:&#039;&#039;&#039;PICTURES&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Show &amp;quot;Paused&amp;quot; in picture slideshow&#039;&#039;&#039;&lt;br /&gt;
:::When pausing a fullscreen picture slideshow, this setting will display the current time and a &amp;quot;Paused&amp;quot; label.&lt;br /&gt;
:&#039;&#039;&#039;MEDIA FLAGGING&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable media flags &#039;&#039;(Enabling all media flags may break the layout)&#039;&#039;&#039;&lt;br /&gt;
:::This setting will enable or disable all media flags.&lt;br /&gt;
::&#039;&#039;&#039;Use default theme colour / Use white theme colour&#039;&#039;&#039;&lt;br /&gt;
:::Choose between blue (default) or white media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide video resolution&#039;&#039;&#039;&lt;br /&gt;
:::This setting will hide the video resolution media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide aspect ratio&#039;&#039;&#039;&lt;br /&gt;
:::This setting will hide the aspect ratio media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide rating&lt;br /&gt;
:::This setting will hide the rating media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide subtitle count&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this setting will display a media flag with the number of subtitles available.&lt;br /&gt;
::&#039;&#039;&#039;Hide audio language count&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this setting will display a media flag with the number of audio languages available.&lt;br /&gt;
::&#039;&#039;&#039;Hide Next Aired&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires installation of the add-on [[Add-on:TV_Show_-_Next_Aired|TV Show Next Aired]]&#039;&#039;&lt;br /&gt;
:::This setting will hide the tv show status media flag in the tv show and season library.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
:&#039;&#039;&#039;VIDEOS / MOVIES / TV SHOWS / EPISODES / MUSIC / MUSIC VIDEOS / PICTURES / ADD-ONS / PROGRAMS / MISCELLANEOUS&lt;br /&gt;
:::Here you can disable all view types you don&#039;t use in all windows and sections of Kodi.&lt;br /&gt;
:::TIP: Disabling &#039;&#039;&#039;every single&#039;&#039;&#039; view type you don&#039;t use will significantly speed up load times when entering windows and libraries.&lt;br /&gt;
&lt;br /&gt;
=== Configure Menus ===&lt;br /&gt;
:&#039;&#039;&#039;CONFIGURE MENUS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Shutdown Menu&#039;&#039;&#039;&lt;br /&gt;
:::Here you can enable/disable shutdown menu items. The items are enabled according to your hardware specifications.&lt;br /&gt;
::&#039;&#039;&#039;Context Menu&#039;&#039;&#039;&lt;br /&gt;
:::Here you can enable/disable context menu items. Most items requires add-ons. If a required add-on is not installed, clicking an item will prompt you to install it.&lt;br /&gt;
&lt;br /&gt;
=== Weather ===&lt;br /&gt;
:&#039;&#039;&#039;WEATHER&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable weather&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Removed from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::This will enable or disable the weather notification in the top status bar.&lt;br /&gt;
::&#039;&#039;&#039;Weather add-on&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::If a weather add-on is installed and enabled, the add-on name will display here.&lt;br /&gt;
:::If a weather add-on is not installed or disabled, you will be redirected to the weather settings window.&lt;br /&gt;
::&#039;&#039;&#039;Weather add-on settings&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the selected weather add-on.&lt;br /&gt;
::&#039;&#039;&#039;Show in home window only / Show in all windows&#039;&#039;&#039;&lt;br /&gt;
:::This will either display the weather notification in the home window only or in all windows.&lt;br /&gt;
::&#039;&#039;&#039;Select weather icon pack&#039;&#039;&#039;&lt;br /&gt;
:::This setting allows you to select an image resource add-on weather icons pack to use with the skin.&lt;br /&gt;
:::Defaults to Kodi&#039;s default weather icons if no image resource add-on is selected.&lt;br /&gt;
&lt;br /&gt;
=== Backgrounds ===&lt;br /&gt;
:&#039;&#039;&#039;BACKGROUNDS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Fanart brightness - low / medium&#039;&#039;&#039;&lt;br /&gt;
:::Opens up a dialog to select the fanart background brightness on a 0-100% scale. Default is 30%.&lt;br /&gt;
::&#039;&#039;&#039;Animate custom backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enable this setting to animate the custom backgrounds.&lt;br /&gt;
::&#039;&#039;&#039;Animate fanart backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enable this setting to animate the fanart backgrounds.&lt;br /&gt;
::&#039;&#039;&#039;Time per Image for fanart backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Removed from Rapier 12 / Kodi 19.&lt;br /&gt;
:::&#039;&#039;This setting is only visible if the add-on [https://github.com/marcelveldt/script.skin.helper.backgrounds Skin Helper Backgrounds] is installed.&lt;br /&gt;
:::&#039;&#039;This setting is only enabled if fanart backgrounds have been selected for either the music, videos, movies, tv shows or pvr sections.&lt;br /&gt;
:::Clicking this button will bring up a numeric dialog. Use this to set the time in seconds each fanart image is shown. Defaults to 8 seconds.&lt;br /&gt;
::&#039;&#039;&#039;Select movie / tv show genre background pack&#039;&#039;&#039;&lt;br /&gt;
:::Select a genre background image pack to be used in the movies and tv shows genre node.&lt;br /&gt;
::&#039;&#039;&#039;Select music / music video genre background pack&#039;&#039;&#039;&lt;br /&gt;
:::Select a genre background image pack to be used in the music and music videos genre node.&lt;br /&gt;
:&#039;&#039;&#039;WIDGETS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide all widget backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will hide the backgrounds for all home screen widgets, when they are focused.&lt;br /&gt;
:&#039;&#039;&#039;CUSTOM BACKGROUNDS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Global&#039;&#039;&#039;&lt;br /&gt;
:::Choose a custom single image or multi images to use globally throughout the skin. You can set the background brightness from 0-100%.&lt;br /&gt;
::&#039;&#039;&#039;Music  /  Videos  /  Movies  /  TV Shows / Add-ons &#039;&#039;(from Rapier 12 / Kodi 19)&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
:::For the music, videos, movies, tv shows and add-ons &#039;&#039;(from Rapier 12 / Kodi 19)&#039;&#039; sections, you can choose between four background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Fanart images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin. Select to display either random, recent, in progress or unwatched fanart images (all options will not be available for every category).&lt;br /&gt;
::&#039;&#039;&#039;TV / Radio&#039;&#039;&#039;&lt;br /&gt;
:::For the tv and radio sections, you can choose between four background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Random fanart images &#039;&#039;(Removed from Rapier 12 / Kodi 19)&#039;&#039;. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::&#039;&#039;&#039;Pictures&#039;&#039;&#039;&lt;br /&gt;
:::For the pictures section, you can choose between five background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Latest images from your library. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin. This setting requires the add-on [[forum:133905|MyPicsDB]].&lt;br /&gt;
::::* Random images from your library. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin. This setting requires the add-on [[forum:133905|MyPicsDB]].&lt;br /&gt;
::&#039;&#039;&#039;Add-ons (Rapier 11 / Kodi 18 and below) /  Games /  General  /  System  /  Power&#039;&#039;&#039;&lt;br /&gt;
:::For the programs, add-ons, games, general, system and power sections, you can choose between three background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::&#039;&#039;&#039;Weather&#039;&#039;&#039;&lt;br /&gt;
:::For the weather section, you can choose between 5 background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Weather condition backgrounds. Select the path to your weather fanart folder. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Condition (Add-on). This setting allows you to select an image resource add-on weather fanart pack.&lt;br /&gt;
&lt;br /&gt;
=== Add-ons ===&lt;br /&gt;
::&#039;&#039;&#039;&#039;&#039;NOTE: Category completely removed from Rapier 12 / Kodi 19&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;LYRICS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Path&#039;&#039;&#039;&lt;br /&gt;
:::Select your preferred lyrics add-on to use in the music visualization window.&lt;br /&gt;
::&#039;&#039;&#039;Lyrics settings&#039;&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the selected lyrics add-on.&lt;br /&gt;
:&#039;&#039;&#039;ARTWORK DOWNLOADER&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the Artwork Downloader add-on.&lt;br /&gt;
::&#039;&#039;&#039;Download according to add-on settings&#039;&#039;&#039;&lt;br /&gt;
:::This will download all artwork specified in the Artwork Downloader settings.&lt;br /&gt;
::&#039;&#039;&#039;Download presets - movies&#039;&#039;&#039;&lt;br /&gt;
:::Hide or show all the settings for the movie artwork downloads.&lt;br /&gt;
::&#039;&#039;&#039;All&#039;&#039;&#039;&lt;br /&gt;
:::Download all movie artwork: poster, fanart, extra fanart, extra thumbs, thumbnail 16:9, clear art, clear logo. All artwork for every movie will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Poster / Fanart / Extra fanart / Extra thumbs / Thumbnail 16:9 / Clear art / Clear logo&#039;&#039;&#039;&lt;br /&gt;
:::Download only the movie artwork specified. The selected artwork for all movies wil be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Download presets - tv shows&#039;&#039;&#039;&lt;br /&gt;
:::Hide or show all the settings for the tv shows artwork downloads.&lt;br /&gt;
::&#039;&#039;&#039;All&#039;&#039;&#039;&lt;br /&gt;
:::Download all tv show artwork: poster, season poster, banner, season banner, fanart, extra fanart, extra thumbs, clear art, clear logo, tv thumb 16:9. All artwork for every tv show will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Poster / Season poster / Banner / Season banner / Fanart / Extra fanart / Extra thumbs / Clear art / Clear logo / TV thumb 16:9&#039;&#039;&#039;&lt;br /&gt;
:::Download only the tv show artwork specified. The selected artwork for all tv shows will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Download presets - music videos&#039;&#039;&#039;&lt;br /&gt;
:::Hide or show all the settings for the music videos artwork downloads.&lt;br /&gt;
::&#039;&#039;&#039;All&#039;&#039;&#039;&lt;br /&gt;
:::Download all music video artwork: poster, fanart, extra fanart, clear art, clear logo. All artwork for every music video will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Poster / Fanart / Extra fanart / Clear art / Clear logo&#039;&#039;&#039;&lt;br /&gt;
:::Download only the music video artwork specified. The selected artwork for all music videos will be downloaded.&lt;br /&gt;
:&#039;&#039;&#039;IMDB UPDATE&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This section will only be available of you have installed the add-on [http://forum.kodi.tv/showthread.php?tid=167754 IMDb Update] on your system.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the add-on [http://forum.kodi.tv/showthread.php?tid=167754 IMDb Update].&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb movie rating&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb movie rating for all movies in your library.&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb movie rating (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb movie rating for all movies in your library. The service will run in the background.&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb top 250&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb top 250 for all movies in your library.&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb top 250 (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb top 250 for all movies in your library. The service will run in the background.&lt;br /&gt;
::&#039;&#039;&#039;Update MPAA rating&#039;&#039;&#039;&lt;br /&gt;
:::This will update the MPAA rating for all movies in your library.&lt;br /&gt;
::&#039;&#039;&#039;Update MPAA rating (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update the MPAA rating for all movies in your library. The service will run in the background.&lt;br /&gt;
::&#039;&#039;&#039;Update All&#039;&#039;&#039;&lt;br /&gt;
:::This will update all options for this add-on.&lt;br /&gt;
::&#039;&#039;&#039;Update All (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update all options for this add-on. The service will run in the background.&lt;br /&gt;
&lt;br /&gt;
=== Supported Add-ons ===&lt;br /&gt;
:::This section contains two sub sections:&lt;br /&gt;
::::*Automatic installation from Kodi add-on repository&lt;br /&gt;
:::::This is a list of add-ons from the official Kodi add-on repository supported by Rapier. Each add-on will display a description when focused.&lt;br /&gt;
::::::If an add-on is installed and enabled you will see the add-on version information. Clicking the add-on will open up the settings dialog.&lt;br /&gt;
::::::If an add-on is installed but disabled, clicking the item will prompt you to enable the add-on and guide you through the process. (Rapier 12 / Kodi 19 only)&lt;br /&gt;
::::::If an add-on is not installed, clicking the item will prompt you to install the add-on and guide you through the process.&lt;br /&gt;
::::*Manual installation&lt;br /&gt;
:::::This list of add-ons supported by Rapier is &#039;&#039;not&#039;&#039; in the official Kodi add-on repository. Each add-on will display a description when focused.&lt;br /&gt;
::::::If an add-on is installed and enabled you will see the add-on version information. Clicking the add-on will open up the settings dialog.&lt;br /&gt;
::::::If an add-on is installed but disabled, clicking the item will prompt you to enable the add-on and guide you through the process. (Rapier 12 / Kodi 19 only)&lt;br /&gt;
::::::If an add-on is not installed, clicking the item will display an error notification. You can only install these add-ons manually from zip.&lt;br /&gt;
&lt;br /&gt;
=== Reset Skin / Skin Settings ===&lt;br /&gt;
:&#039;&#039;&#039;SKIN SETTINGS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Reset skin settings to default (press to confirm).&#039;&#039;&#039;&lt;br /&gt;
:::This will reset all skin settings to default. You can NOT undo this action.&lt;br /&gt;
::&#039;&#039;&#039;Export skin settings&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [https://github.com/marcelveldt/script.skin.helper.skinbackup Skin Helper Skinbackup]&#039;&#039;&lt;br /&gt;
:::Exports all the Rapier skin settings to your selected location.&lt;br /&gt;
::&#039;&#039;&#039;Import skin settings.&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [https://github.com/marcelveldt/script.skin.helper.skinbackup Skin Helper Skinbackup]&#039;&#039;&lt;br /&gt;
:::Imports all the Rapier skin settings from your selected location.&lt;br /&gt;
:&#039;&#039;&#039;OTHER&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Reload skin&#039;&#039;&#039;&lt;br /&gt;
:::This will reload the skin and can be useful for reloading xml files, images, fonts and other changes.&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
[https://www.transifex.com/teamxbmc/kodi-skins/skin-rapier/ Translations of the skin are handled on Transifex.]&lt;br /&gt;
&lt;br /&gt;
Please take a moment to check if your language is up to date, and all strings are translated. You can help out by signing up on Transifex, join the project and translate the skin to your native language.&lt;br /&gt;
&lt;br /&gt;
A huge thanks to all the translators for the great work - it&#039;s really appreciated!&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
You can follow the latest development on Github.&lt;br /&gt;
* [https://github.com/gade01/Rapier Rapier 12 - Kodi 19 Matrix]&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Leia Rapier 11 - Kodi 18 Leia]&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Krypton Rapier 10 - Kodi 17 Krypton]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Jarvis Rapier 9 - Kodi 16 Jarvis]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Isengard Rapier 8 - Kodi 15 Isengard]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Helix Rapier 7 - Kodi 14 Helix]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Gotham Rapier 6 - XBMC 13 Gotham]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Frodo Rapier 5 - XBMC 12 Frodo]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Eden Rapier 4 - XBMC 11 Eden]  -  DEPRECATED&lt;br /&gt;
&lt;br /&gt;
== Changelogs ==&lt;br /&gt;
* [https://www.dropbox.com/s/dv4jk2fcudw3k4z/changelog.txt?dl=0 View changelog for Rapier 12 - Kodi 19 Matrix]&lt;br /&gt;
* [https://www.dropbox.com/s/mqyx0wy7tqchee0/changelog.txt?dl=0 View changelog for Rapier 11 - Kodi 18 Leia]&lt;br /&gt;
* [https://www.dropbox.com/s/fpr7kaqxwsk61sy/changelog.txt?dl=0 View changelog for Rapier 10 - Kodi 17 Krypton]&lt;br /&gt;
* [https://www.dropbox.com/s/niaeaddbfifk6s6/changelog.txt?dl=0 View changelog for Rapier 9 - Kodi 16 Jarvis]&lt;br /&gt;
* [https://www.dropbox.com/s/chwzv9mbctsrlip/changelog.txt?dl=0 View changelog for Rapier 8 - Kodi 15 Isengard]&lt;br /&gt;
* [https://www.dropbox.com/s/091grvjawrif5rw/changelog.txt?dl=0 View changelog for Rapier 7 - Kodi 14 Helix]&lt;br /&gt;
* [https://www.dropbox.com/s/oi0y8c80quyn93b/changelog.txt?dl=0 View changelog for Rapier 6 - XBMC 13 Gotham]&lt;br /&gt;
* [https://www.dropbox.com/s/5q4zvdig1y4u72t/changelog.txt?dl=0 View changelog for Rapier 5 - XBMC 12 Frodo]&lt;br /&gt;
* [https://raw.githubusercontent.com/gade01/Rapier/Eden/changelog.txt View changelog for Rapier 4.x - XBMC 11 Eden]&lt;br /&gt;
&lt;br /&gt;
{{Compat&lt;br /&gt;
 | Works with Atlantis = {{No}}&lt;br /&gt;
 | Works with Babylon  = {{No}}&lt;br /&gt;
 | Works with Camelot  = {{Yes}}&lt;br /&gt;
 | Works with Dharma   = {{Yes}}&lt;br /&gt;
 | Works with Eden     = {{Yes}}&lt;br /&gt;
 | Works with Frodo    = {{Yes}}&lt;br /&gt;
 | Works with Gotham   = {{Yes}}&lt;br /&gt;
 | Works with Helix    = {{Yes}}&lt;br /&gt;
 | Works with Isengard = {{Yes}}&lt;br /&gt;
 | Works with Jarvis   = {{Yes}}&lt;br /&gt;
 | Works with Krypton  = {{Yes}}&lt;br /&gt;
 | Works with Leia     = {{Yes}}&lt;br /&gt;
 | Works with Matrix   = {{Yes}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Skins]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Matrix add-on repository]]&lt;br /&gt;
[[Category:Nexus add-on repository]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Rapier&amp;diff=243181</id>
		<title>Add-on:Rapier</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Rapier&amp;diff=243181"/>
		<updated>2022-10-11T09:54:55Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Media */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Rapier&lt;br /&gt;
|provider-name=Scarfa, Gade&lt;br /&gt;
|ID=skin.rapier&lt;br /&gt;
|latest-version=12.3.5&lt;br /&gt;
|extension point=xbmc.gui.skin&lt;br /&gt;
|provides=&lt;br /&gt;
|Summary=Rapier skin by Scarfa, Gade.&lt;br /&gt;
|Description=The goal is to provide a simple to use but clean and elegant interface that focuses on efficiency when browsing your media. Important considerations are put on usability, performance, and providing the user with flexibility when it comes to customization. Rapier tries to support all the latest features Kodi has to offer as long as it fits in with the skin&#039;s design goals.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported&lt;br /&gt;
|Forum=https://forum.kodi.tv/forumdisplay.php?fid=120&lt;br /&gt;
|Website=https://kodi.wiki/view/Add-on:Rapier&lt;br /&gt;
|Source=https://github.com/gade01/Rapier&lt;br /&gt;
|Email=&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/matrix/skin.rapier/resources/icon.png}}&lt;br /&gt;
&lt;br /&gt;
== Development version / Gade&#039;s Add-on Repository ==&lt;br /&gt;
&amp;lt;section begin=DevelopmentVersion/&amp;gt;I have created an add-on repository for Rapier and my other add-ons. This means that if you install this repository, you will always automatically receive the newest and freshest development updates of Rapier. You will still automatically get the official updates.&lt;br /&gt;
&lt;br /&gt;
To install this repository, you must do so by following these steps:&lt;br /&gt;
# [https://github.com/gade01/repository.gade/raw/master/leia/repository.gade/repository.gade-2.1.1.zip Download the zip file containing Gade&#039;s Add-on Repository from Github]&lt;br /&gt;
# Start Kodi&lt;br /&gt;
# Navigate to Settings&lt;br /&gt;
# Add-ons&lt;br /&gt;
# Install from zip file&lt;br /&gt;
# Locate the zip file you downloaded&lt;br /&gt;
# Install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Recommended Kodi settings:&lt;br /&gt;
* &#039;&#039;Settings &amp;gt; System &amp;gt; Add-ons &amp;gt; Updates&#039;&#039;:  &lt;br /&gt;
:- Install updates automatically&lt;br /&gt;
* &#039;&#039;Settings &amp;gt; System &amp;gt; Add-ons &amp;gt; Unknown sources&#039;&#039;:&lt;br /&gt;
:- Enabled&lt;br /&gt;
* &#039;&#039;Settings &amp;gt; System &amp;gt; Add-ons &amp;gt; Update official add-ons from (Kodi 19 Matrix only)&#039;&#039;:&lt;br /&gt;
:- Any repositories&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After this, you will automatically receive the latest development versions directly within Kodi.&lt;br /&gt;
&amp;lt;section end=DevelopmentVersion/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Required add-ons ==&lt;br /&gt;
&amp;lt;section begin=RequiredAdd-ons/&amp;gt;To get the most out of Rapier the following add-ons are required - they should be installed automatically when installing the skin. If this is not the case, please install using the XBMC Add-on Manager or manually using the links below. Certain skin features will not be available if one or more of these add-ons are not installed on your system.&lt;br /&gt;
&lt;br /&gt;
* [[Add-on:Favourites_script|Favourites]]&lt;br /&gt;
* [[forum:345471|Embuary Helper]] &#039;&#039;(Added from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:235676|Skin Helper Service]] &#039;&#039;(Moved to Supported Add-ons from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [https://github.com/marcelveldt/script.skin.helper.widgets Skin Helper Widgets] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:TV_Show_-_Next_Aired|TV Show Next Aired]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [http://mirrors.kodi.tv/addons/jarvis/resource.images.studios.white/ White Studio Icons add-on]&lt;br /&gt;
&amp;lt;section end=RequiredAdd-ons/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Supported add-ons (Kodi Add-on Repository Installation) ==&lt;br /&gt;
&amp;lt;section begin=SupportedAdd-ons1/&amp;gt;The following add-ons are supported by Rapier. They can be installed using the Kodi Add-on Manager or manually using the links below. &lt;br /&gt;
&lt;br /&gt;
* [[Add-on:Rapier_UI_Sounds|Rapier UI Sounds]]&lt;br /&gt;
* [[forum:235676|Skin Helper Service]] &#039;&#039;(Moved to Supported Add-ons from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:Artist_Slideshow|Artist Slideshow]]&lt;br /&gt;
* Artwork Downloader &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:Global_Search|Global Search]]&lt;br /&gt;
* [[forum:345847|TheMovieDb Helper]] &#039;&#039;(Added from Kodi 19 / Rapier 12)&#039;&#039;&lt;br /&gt;
* [https://github.com/marcelveldt/script.skin.helper.backgrounds Skin Helper Backgrounds] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[Add-on:Random_and_Last_items_script|Random and Last items]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:239558|Image Resource Selection script]]&lt;br /&gt;
* [[Add-on:CU_LRC_Lyrics|CU LRC Lyrics]]&lt;br /&gt;
* CDArt Manager &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:335425|Weatherbit IO]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:352028|Multi Weather]] &#039;&#039;(Added from Rapier 12 / Kodi 19)&#039;&#039;&lt;br /&gt;
* [[Add-on:ExtendedInfo_Script|ExtendedInfo Script]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [https://github.com/marcelveldt/script.skin.helper.skinbackup Skin Helper Skinbackup]&lt;br /&gt;
* [[forum:336747|Up Next]]&lt;br /&gt;
* [[Add-on:Embuary_Info|Embuary Info]] &#039;&#039;(Added from Rapier 12 / Kodi 19)&#039;&#039;&lt;br /&gt;
* [[forum:231881|CinemaVision]]&lt;br /&gt;
* [[forum:224512|User Rating Script]]&lt;br /&gt;
* [https://github.com/phil65/script.module.t9.search T9 Search Script]&lt;br /&gt;
* [[forum:224512|Library Node Editor]]&lt;br /&gt;
* [[forum:200081|Audio Profiles]]&lt;br /&gt;
* [https://github.com/phil65/plugin.program.autocompletion Autocompletion for virtual keyboard]&lt;br /&gt;
* [[Add-on:Special_Features|Special Features]]&lt;br /&gt;
* &#039;&#039;Image resource genre icons, weather icons and genre fanart, weather fanart add-ons...&#039;&#039;&lt;br /&gt;
&amp;lt;section end=SupportedAdd-ons1/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Supported add-ons (Manual Installation) ==&lt;br /&gt;
&amp;lt;section begin=SupportedAdd-ons2/&amp;gt;The following add-ons are supported by Rapier. They can be installed manually using the links below. &lt;br /&gt;
&lt;br /&gt;
* [[forum:329767|Netflix Add-on]]&lt;br /&gt;
* [[forum:258886|Artwork Beef]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:133905|MyPicsDB]]&lt;br /&gt;
* [[forum:167754|IMDB Update]] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
* [[forum:158775|Library Editor]]&lt;br /&gt;
* [https://github.com/phil65/script.youtube.browser Script.youtube.browser] &#039;&#039;(Support removed from Rapier 12 / Kodi 19!)&#039;&#039;&lt;br /&gt;
&amp;lt;section end=SupportedAdd-ons2/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Special skin features ==&lt;br /&gt;
&amp;lt;section begin=Skin features/&amp;gt;{{Skin features&lt;br /&gt;
 | skin = [[Add-on:Rapier|Rapier]]&lt;br /&gt;
 | custom home items = {{yes}}&lt;br /&gt;
 | custom submenu items = {{yes}}&lt;br /&gt;
 | Media flags = {{yes}}&lt;br /&gt;
 | TV show logo = {{yes}}&lt;br /&gt;
 | TV logo downloader = {{yes}}&lt;br /&gt;
 | Artwork downloader = {{yes}}&lt;br /&gt;
 | Clear Art = {{yes}}&lt;br /&gt;
 | cdArt = {{yes}}&lt;br /&gt;
 | Extra fanart = {{yes}}&lt;br /&gt;
 | Season fanart = {{no}}&lt;br /&gt;
 | Weather fanart = {{yes}}&lt;br /&gt;
 | Live TV = {{yes}}&lt;br /&gt;
 | Next Aired = {{yes}}&lt;br /&gt;
 | TvTunes = {{yes}}&lt;br /&gt;
 | Advanced Launcher = {{no}}&lt;br /&gt;
 | Watchlist = {{yes}}&lt;br /&gt;
 | MovieSets = {{yes}}&lt;br /&gt;
 | Metadata Actors = {{yes}}&lt;br /&gt;
 | Cinema Experience = {{yes}}&lt;br /&gt;
 | Touch = {{yes}}&lt;br /&gt;
 | PVR = {{yes}}&lt;br /&gt;
 | Skin Widgets = {{yes}}&lt;br /&gt;
 | Intro movie = {{yes}}&lt;br /&gt;
 | Random And Last Items = {{yes}}&lt;br /&gt;
}}&lt;br /&gt;
* &#039;&#039;&#039;All of the above mentioned add-ons&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Custom home items]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Movie, tv show and music video clear logos and clear art&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Music clear logos and cd art&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[Artwork|Extra fanart]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Touch support&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Splash screen (video, audio or image)&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[PVR|PVR &amp;amp; Live TV/Radio]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Audio DSP support including all Audio DSP add-ons.&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Games support&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;section end=Skin features/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;section begin=&amp;quot;screenshots&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Screenshots&amp;quot; widths=200px heights=113px&amp;gt;&lt;br /&gt;
File:Rapier_new_home_movies.png|Home screen Movies without widgets&lt;br /&gt;
File:skin.rapier_new_home_movies_widgets.jpg|Home screen Movies with widgets&lt;br /&gt;
File:Rapier02.jpg|Movies Thumbnail View&lt;br /&gt;
File:Rapier03.jpg|Movies Wrap Info View&lt;br /&gt;
File:Rapier04.jpg|Movies List Info 2 View&lt;br /&gt;
File:Rapier05.jpg|Movies Wall View&lt;br /&gt;
File:skin.rapier.16.png|Movies 3D Wrap View&lt;br /&gt;
File:Rapier_movie_genres.png|Movie Genres Extended List View&lt;br /&gt;
File:Rapier_new_tvshows.jpg|Home screen TV Shows with widgets&lt;br /&gt;
File:Rapier07.jpg|TV Shows Thumbs Info View (clear logo)&lt;br /&gt;
File:Rapier08.jpg|TV Shows Thumbs Info View (banners)&lt;br /&gt;
File:Rapier10.jpg|Movies Icon View (clear logo)&lt;br /&gt;
File:skin.rapier_fullscreen_video.jpg|Paused fullscreen video&lt;br /&gt;
File:Rapier_new_videos.jpg|Home screen Videos with add-on shortcuts&lt;br /&gt;
File:Rapier13.jpg|Music Albums List View&lt;br /&gt;
File:Rapier14.png|Music playing visualization 1&lt;br /&gt;
File:Skin.rapier fullscreen music.jpg|Music playing visualization 2&lt;br /&gt;
File:skin.rapier_custom_addons.png|Custom add-ons manager window&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;section end=&amp;quot;screenshots&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Videos ==&lt;br /&gt;
=== Kodi 15.x - Rapier Demo ===&lt;br /&gt;
{{youtube|CZQWrJYgTa0}}&lt;br /&gt;
=== Kodi / Rapier Splash Video ===&lt;br /&gt;
{{youtube|G-l_tIKgbzE}}&lt;br /&gt;
=== Video lyrics for fullscreen music playback in Rapier ===&lt;br /&gt;
{{youtube|O0TqCmvIRJ8}}&lt;br /&gt;
&lt;br /&gt;
== Tips and guides ==&lt;br /&gt;
=== Creating a custom category ===&lt;br /&gt;
:This is a step-by-step guide to adding a custom category. Up to 16 custom categories are available.&lt;br /&gt;
::1.  Go to Skin Settings &amp;gt; Home &amp;gt; Category Menu&lt;br /&gt;
::2.  Click &amp;quot;Add more categories&amp;quot;&lt;br /&gt;
::3.  Click &amp;quot;Category 1-4&amp;quot; to activate custom category 1-4, &amp;quot;Category 5-8&amp;quot; to activate custom category 5-8, &amp;quot;Category 9-12&amp;quot; to activate custom category 9-12 or &amp;quot;Category 13-16&amp;quot; to activate custom category 13-16&lt;br /&gt;
::4.  Choose between adding a custom category from one of your Favourites or from a built in skin preset. &lt;br /&gt;
::5.  &amp;quot;Path&amp;quot;:&lt;br /&gt;
:::*If you have chosen adding a custom category from a Favourite, a dialog will open up with all your favourites. You can add almost any item within Kodi to your Favourites using the context menu.&lt;br /&gt;
:::*If you have chosen adding a custom category from a built in skin preset, the presets dialog will open up. This allows you to choose any item in the sections or to enter a custom action yourself (bottom left item).&lt;br /&gt;
::6.  &amp;quot;Name&amp;quot;:&lt;br /&gt;
:::Enter a name for your custom category. If no name is entered, &amp;quot;Custom X&amp;quot; (where X is the custom category number) will be used.&lt;br /&gt;
::::If navigation buttons are disabled, it&#039;s recommended to use 11 characters or less for best results.&lt;br /&gt;
::::If navigation buttons are enabled, it&#039;s recommended to use 10 characters or less for best results.&lt;br /&gt;
::7.  You can choose a category icon from any location on your system.&lt;br /&gt;
::8.  You can add up to 6 add-on shortcuts.&lt;br /&gt;
::::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
::::Choose between any add-on.&lt;br /&gt;
::::Selecting an add-on shortcut will disable the category icon for the chosen category.&lt;br /&gt;
::9.  You can choose a widget. Adding a widget brings up a dialog:&lt;br /&gt;
:::*Movies, tv shows, music videos or albums will display recently added and in progress/featured items from your library. &lt;br /&gt;
:::*Add-ons will display random add-ons. &lt;br /&gt;
:::*Games will display all game add-ons.&lt;br /&gt;
:::*Playlist (movies, episodes or music) will display recently added and featured items from your selected playlist (useful when the custom category is a playlist from your favourites). &lt;br /&gt;
:::*In Cinemas / Upcoming Movies, Top Rated Movies / Top Rated TV Shows, Trending Movies / TV Shows will use the add-on script.extendedinfo to fill the widgets. &lt;br /&gt;
:::*Favourite &#039;&#039;(added from Rapier 12 / Kodi 19)&#039;&#039; will bring up a dialog to choose a custom top widget and a custom bottom widget using your favourites. You can choose either one, as both are not required. You can set the name and choose aspect (poster, wide or square) individually for both widgets.&lt;br /&gt;
:::*Custom &#039;&#039;(script.skinshortcuts required)&#039;&#039; will bring up a dialog to choose a custom top widget and a custom bottom widget. You can choose either one, as both are not required. You can set the name and choose aspect (poster, wide or square) individually for both widgets.&lt;br /&gt;
::10.  You can choose between 3 background options for your custom category.&lt;br /&gt;
:::*&amp;quot;Single image&amp;quot; will open up a dialog, where you can choose any image on your system as background for your custom category.&lt;br /&gt;
:::*&amp;quot;Multi image&amp;quot; will open up a dialog, where you can choose any folder with images on your system as multi backgrounds for your custom category.&lt;br /&gt;
:::*&amp;quot;Fanart&amp;quot; will open up a dialog, where you can choose one of the built in fanart options as background for your custom category.&lt;br /&gt;
:::The button below will display the chosen background option and the image to the left will display the image(s).&lt;br /&gt;
&lt;br /&gt;
=== Adding, removing or editing submenus ===&lt;br /&gt;
:This is a step-by-step guide to adding, removing or editing submenus. You can add up to 7 submenus for each category.&lt;br /&gt;
::*Go to Skin Settings &amp;gt; Home &amp;gt; Category Submenu. &lt;br /&gt;
:::All of your enabled categories are displayed here: Music / Videos / Movies / TV Shows / Add-ons / Pictures / General / System / Live TV / Weather / Custom Category 1-16&lt;br /&gt;
:::Clicking any of them allows you to add, remove or edit the submenus.&lt;br /&gt;
::*To &#039;&#039;&#039;remove&#039;&#039;&#039; an existing hardcoded submenu from the Music / Videos / Movies / TV Shows / Add-ons / Pictures / General / System / Live TV / Weather categories:&lt;br /&gt;
:::Enabling Button 1 and leaving everything else blank, will disable the existing submenu 1 for the chosen category and so on. Do this for all the submenu items you wish to remove.&lt;br /&gt;
::*To &#039;&#039;&#039;edit&#039;&#039;&#039; any submenu item for a category:&lt;br /&gt;
:::Enabling Button 1 and entering all the necessary information, will replace submenu 1 for the chosen category and so on. Do this for all the submenu items you wish to edit.&lt;br /&gt;
::::1.  Click Button 1 to 7 to edit the submenu item you wish.&lt;br /&gt;
::::2.  Choose between editing a submenu item using one of your Favourites, a built in skin preset, a script or an add-on.&lt;br /&gt;
::::3.  &amp;quot;Path&amp;quot;:&lt;br /&gt;
:::::If you have chosen editing a submenu item using one of your Favourites, a dialog will open up with all your favourites. You can add almost any item within Kodi to your Favourites using the context menu.&lt;br /&gt;
:::::If you have chosen editing a submenu item using a built in skin preset, the presets dialog will open up. This allows you to choose any item in the sections or to enter a custom action yourself (bottom left item).&lt;br /&gt;
:::::If you have chosen editing a submenu item using a script, a dialog will open up where you can select one of the scripts.&lt;br /&gt;
:::::If you have chosen editing a submenu item using an add-on, a dialog will open up where you can select one of the add-ons.&lt;br /&gt;
::::4.  &amp;quot;Label&amp;quot; allows you to enter the name of the submenu.&lt;br /&gt;
::*To &#039;&#039;&#039;add&#039;&#039;&#039; a submenu item for any category:&lt;br /&gt;
:::You can add additional submenus to a category with less than 7 submenu items: eg. if a category has 4 submenus, you can enable Button 5, 6 and 7 to add 3 additional custom submenus.&lt;br /&gt;
::::1.  Click Button 1 to 7 to add the submenu item you wish.&lt;br /&gt;
::::2.  Choose between adding a submenu item from one of your Favourites, a built in skin preset, a script or an add-on.&lt;br /&gt;
::::3.  &amp;quot;Path&amp;quot;:&lt;br /&gt;
:::::If you have chosen adding a submenu item from a Favourite, a dialog will open up with all your favourites. You can add almost any item within Kodi to your Favourites using the context menu.&lt;br /&gt;
:::::If you have chosen adding a submenu item from a built in skin preset, the presets dialog will open up. This allows you to choose any item in the sections or to enter a custom action yourself (bottom left item).&lt;br /&gt;
:::::If you have chosen adding a submenu item from a script, a dialog will open up where you can select one of the scripts.&lt;br /&gt;
:::::If you have chosen adding a submenu item from an add-on, a dialog will open up where you can select one of the add-ons.&lt;br /&gt;
::::4.  &amp;quot;Label&amp;quot; allows you to enter the name of the submenu.&lt;br /&gt;
&lt;br /&gt;
=== Proper naming of files ===&lt;br /&gt;
:Rapier reads all file names.&lt;br /&gt;
:If you use some of the below tags in the file name, additional media flags are displayed automatically.&lt;br /&gt;
::* &amp;quot;bluray&amp;quot; / &amp;quot;blu-ray&amp;quot; / &amp;quot;bdrip&amp;quot; / &amp;quot;brrip&amp;quot; / &amp;quot;bdremux&amp;quot; / &amp;quot;bd25&amp;quot; / &amp;quot;bd50&amp;quot;: displays a Blu-ray logo&lt;br /&gt;
::* &amp;quot;web-dl&amp;quot; / &amp;quot;web-download&amp;quot; / &amp;quot;webrip&amp;quot;: displays a web-dl logo&lt;br /&gt;
::* &amp;quot;.3d.&amp;quot; / &amp;quot;hsbs&amp;quot; / &amp;quot;sbs&amp;quot; / &amp;quot;half-sbs&amp;quot;: displays a 3D logo&lt;br /&gt;
:::The stereoscopic mode can also be automatically detected by Kodi, so you might see this logo without the tags in the file name.&lt;br /&gt;
::* &amp;quot;hddvd&amp;quot; / &amp;quot;hd-dvd&amp;quot;: displays a HD-DVD logo&lt;br /&gt;
::* &amp;quot;dvd&amp;quot; / &amp;quot;dvdrip&amp;quot;: displays a DVD logo&lt;br /&gt;
:::The DVD logo will also be displayed if the file extension is: .img / .ifo / .vob&lt;br /&gt;
::* &amp;quot;hdtv&amp;quot;: displays a HD TV logo&lt;br /&gt;
::* &amp;quot;sdtv&amp;quot; / &amp;quot;pdtv&amp;quot;: displays a SD TV logo&lt;br /&gt;
::* &amp;quot;vhs&amp;quot;: displays a VHS logo&lt;br /&gt;
::* &amp;quot;.atmos&amp;quot;: if your file contains either TrueHD or E-AC3 (Dolby Digital Plus) audio, a Dolby Atmos logo will display&lt;br /&gt;
::* &amp;quot;dtsx&amp;quot; / &amp;quot;dts-x&amp;quot;: if your file contains DTS-HD Master Audio, a DTS:X logo will display&lt;br /&gt;
::* &amp;quot;dtses&amp;quot; / &amp;quot;dts-es&amp;quot;: if your file contains DTS Audio, a DTS-ES logo will display&lt;br /&gt;
::* &amp;quot;.bdxl&amp;quot; / &amp;quot;bd66&amp;quot; / &amp;quot;bd100&amp;quot;: displays an Ultra-HD Blu-ray logo&lt;br /&gt;
::* &amp;quot;.unrated&amp;quot;: displays an &amp;quot;Unrated&amp;quot; media flag&lt;br /&gt;
::* &amp;quot;missingvideo&amp;quot; or &amp;quot;Missingvideo&amp;quot; will grey out a missing movie or episode. [[Add-on:Rapier#Using_the_missing_movie_or_episode_feature|Click here for details.]]&lt;br /&gt;
&lt;br /&gt;
=== Using the missing movie or episode feature ===&lt;br /&gt;
:&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:You can add the missing movies for a movie set and missing episodes for tv shows. They will be greyed out in the listing, so it&#039;s easy to see which ones are missing. &lt;br /&gt;
::&#039;&#039;What is required for missing movies:&#039;&#039;&lt;br /&gt;
:::*Use any video file in any format (the smaller size, the better).&lt;br /&gt;
:::*Create a movie folder for the missing movie (like you normally do for movies)&lt;br /&gt;
:::*Name the file anything and add &amp;quot;Missingvideo&amp;quot; or &amp;quot;missingvideo&amp;quot; anywhere in the filename.&lt;br /&gt;
::::- Eg. &amp;quot;Star.Wars.The.Rise.of.Skywalker.2019.missingvideo.mp4&amp;quot;&lt;br /&gt;
:::*Scrape the movie into your library and you&#039;re done.&lt;br /&gt;
::&#039;&#039;What is required for episodes:&#039;&#039;&lt;br /&gt;
:::*Use any video file in any format (the smaller size, the better).&lt;br /&gt;
:::*Place the file in your tv show folder and give it the appropiate episode number and name.&lt;br /&gt;
:::*Add &amp;quot;Missingvideo&amp;quot; or &amp;quot;missingvideo&amp;quot; anywhere in the filename.&lt;br /&gt;
::::- Eg. &amp;quot;Simpsons.S20E18.missingvideo.mp4&amp;quot;&lt;br /&gt;
:::*Scrape the episode into your library and you&#039;re done.&lt;br /&gt;
&lt;br /&gt;
=== Missing tv show clear logos in the TV Shows Today widget in the home screen ===&lt;br /&gt;
:Go to Skin Settings -&amp;gt; Add-ons -&amp;gt; Artwork Downloader -&amp;gt; Download Presets - TV Shows -&amp;gt; Click the Clear Logo button and wait for the script to finish. This should add all clear logos for the tv shows to your library. You can do this with clear art as well if you wish.&lt;br /&gt;
&lt;br /&gt;
=== Missing Upcoming TV Shows widget ===&lt;br /&gt;
:If you don&#039;t see the Upcoming TV Shows widget on the home screen, you probably need to enable it in the Tv Show - Next Aired add-on settings.&lt;br /&gt;
::* Go to Add-ons &amp;gt; My Add-ons &amp;gt; Program Add-ons &amp;gt; TV Show - Next Aired &amp;gt; Settings&lt;br /&gt;
::* ENABLE the setting &amp;quot;Show all tv shows for home screen (needs skin support)&amp;quot;&lt;br /&gt;
::* Restart Kodi&lt;br /&gt;
&lt;br /&gt;
=== ExtendedInfo (using script.extendedinfo) for movie/tv show cast/crew members ===&lt;br /&gt;
:To activate ExtendedInfo for movie/tv show cast members, press down from the selected cast member in the video information window. &lt;br /&gt;
:You can click any director/writer throughout the skin to activate ExtendedInfo.&lt;br /&gt;
&lt;br /&gt;
=== Mouse / touch device support ===&lt;br /&gt;
:Mouse and touch devices are indeed supported by this skin.&lt;br /&gt;
:To make the most of your experience, make sure these skin settings are set:&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Hide dialog close buttons &amp;gt; DISABLED&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Hide top options menu bar (only show when selected) &amp;gt; DISABLED&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Hide top bar when idle &amp;gt; DISABLED&lt;br /&gt;
::*Skin Settings &amp;gt; Home &amp;gt; Show navigation buttons &amp;gt; ENABLED&lt;br /&gt;
&lt;br /&gt;
=== Low powered devices ===&lt;br /&gt;
:Rapier can be a bit rough on lower powered devices. Especially entering libraries for the first time after launch can take a while.&lt;br /&gt;
:Several skin settings have been made to improve performance:&lt;br /&gt;
::*Skin Settings &amp;gt; General &amp;gt; Enable low CPU power mode&lt;br /&gt;
:::&#039;&#039;When enabled, you can choose between these two options:&#039;&#039;&lt;br /&gt;
:::1. Disable animations only. Selecting this option will disable selected animations.&lt;br /&gt;
:::2. Disable animations and CPU demanding skin settings. Selecting this option will disable selected animations AND these CPU demanding skin settings:&lt;br /&gt;
::::* Video playing in the background&lt;br /&gt;
::::* Play trailers in a window&lt;br /&gt;
::::* Music CD art&lt;br /&gt;
::::* Animated backgrounds and fanart (both music and video)&lt;br /&gt;
::::* Music visualization and artist fanart in the background (when playing music)&lt;br /&gt;
::::* Fanart slideshow using script.artistslideshow (when playing music)&lt;br /&gt;
::*Skin Settings &amp;gt; Views&lt;br /&gt;
:::Here you can disable &#039;&#039;&#039;all&#039;&#039;&#039; view types you don&#039;t use in all windows and sections of Kodi.&lt;br /&gt;
:::TIP: Disabling &#039;&#039;&#039;every single&#039;&#039;&#039; view type you don&#039;t use will significantly speed up load times when entering windows and libraries.&lt;br /&gt;
&lt;br /&gt;
== Skin Settings ==&lt;br /&gt;
Rapier is highly customizable and has a great deal of skin settings. This section details all the skin settings options for Rapier.&lt;br /&gt;
=== General ===&lt;br /&gt;
:&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable kiosk mode&#039;&#039;&#039;&lt;br /&gt;
:::Once you&#039;ve got everything set up the way you want, you can enable &amp;quot;kiosk mode&amp;quot; to lock your chosen views and hide selected buttons / functions.&lt;br /&gt;
::&#039;&#039;&#039;Enable low CPU power mode&#039;&#039;&#039;&lt;br /&gt;
:::This setting might improve performance on lower powered systems.&lt;br /&gt;
::::&#039;&#039;When enabled, you can choose between these two options:&#039;&#039;&lt;br /&gt;
::::* Disable animations only. Selecting this option will disable selected animations.&lt;br /&gt;
::::* Disable animations and CPU demanding skin settings. Selecting this option will disable selected animations AND these CPU demanding skin settings:&lt;br /&gt;
:::::* Video playing in the background&lt;br /&gt;
:::::* Play trailers in a window&lt;br /&gt;
:::::* Music CD art&lt;br /&gt;
:::::* Animated backgrounds and fanart (both music and video)&lt;br /&gt;
:::::* Music visualization and artist fanart in the background (when playing music)&lt;br /&gt;
:::::* Fanart slideshow using script.artistslideshow (when playing music)&lt;br /&gt;
::&#039;&#039;&#039;Hide dialog close buttons&#039;&#039;&#039;&lt;br /&gt;
:::Hides the dialog close buttons on all dialogs. Dialog close buttons are very useful when using a mouse or touch device.&lt;br /&gt;
::&#039;&#039;&#039;Hide date&#039;&#039;&#039;&lt;br /&gt;
:::Hides the date in the top status bar.&lt;br /&gt;
::&#039;&#039;&#039;Date format&#039;&#039;&#039;&lt;br /&gt;
:::Choose the date format according to your region: UK / Australia / Central Europa / India or USA / Canada.&lt;br /&gt;
::&#039;&#039;&#039;Hide top options menu bar (only show when selected)&#039;&#039;&#039;&lt;br /&gt;
:::This will permanently show the menu bar in the library or hide it. If you choose to hide it, it will only be visible when focused.&lt;br /&gt;
::&#039;&#039;&#039;Hide top bar when idle&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This setting is only enabled when the setting &amp;quot;Hide top options menu bar&amp;quot; above is enabled.&#039;&#039;&lt;br /&gt;
:::This will hide the top bar, when the system has been left idle for 3 seconds. The top bar will still be visible, when the top options menu bar is visible.&lt;br /&gt;
::&#039;&#039;&#039;Use scrollbar / Use quick jump&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This setting requires [[Add-on:Skin_Helper_Service|script.skin.helper.service]].&#039;&#039;&lt;br /&gt;
:::Use scrollbar: Choose this to enable scrollbars throughout the skin.&lt;br /&gt;
:::Use quick jump: Choose this to enable quick jump alphabet navigation wherever possible.&lt;br /&gt;
::&#039;&#039;&#039;Enable battery notification&#039;&#039;&#039;&lt;br /&gt;
:::If you enable this option, a battery notification will be displayed in the top status bar. This will only be visible when using a battery powered device.&lt;br /&gt;
::&#039;&#039;&#039;Enable autocompletions for keyboard dialog&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This setting requires [[Add-on:ExtendedInfo_Script|script.extendedinfo]].&#039;&#039;&lt;br /&gt;
:::This setting enables autocompletions by Google or Youtube for the keyboard dialog in Kodi. They show up as up to 9 clickable suggestions below the actual keyboard.&lt;br /&gt;
:&#039;&#039;&#039;STARTUP&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Rapier 11 / Kodi 18 Leia only: This section requires [[Add-on:Skin_Helper_Service|script.skin.helper.service]].&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Rapier 12 / Kodi 19 Matrix has built in support for this feature.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable splash screen (photo, video or music)&#039;&#039;&#039;&lt;br /&gt;
:::This allows you to enable the setting and choose a video, image or piece of music to play as a splash screen when Kodi starts up.&lt;br /&gt;
::&#039;&#039;&#039;File&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19 Matrix&#039;&#039;&lt;br /&gt;
:::This allows you to choose a video, image or piece of music to play as a splash screen when Kodi starts up.&lt;br /&gt;
::&#039;&#039;&#039;Splash screen image duration&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This button is only visible if an image is chosen as splash screen.&#039;&#039;&lt;br /&gt;
:::Pressing this button brings up a numeric dialog where you can set the amount of time the image is displayed. Defaults to 5 seconds.&lt;br /&gt;
::&#039;&#039;&#039;Preview&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This button is only visible if splash screen is enabled.&#039;&#039;&lt;br /&gt;
:::Pressing this button will preview your chosen media.&lt;br /&gt;
&lt;br /&gt;
=== Home ===&lt;br /&gt;
:&#039;&#039;&#039;HOME&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Show navigation buttons&#039;&#039;&#039;&lt;br /&gt;
:::This will display navigation buttons in each side of the category menu and can be very useful to mouse or touch device users.&lt;br /&gt;
::&#039;&#039;&#039;Enable music playing progressbar&#039;&#039;&#039;&lt;br /&gt;
:::When playing music and leaving the system idle for 5 seconds, the category section will turn into a progressbar.&lt;br /&gt;
:&#039;&#039;&#039;CATEGORY MENU&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Use white / coloured categories&#039;&#039;&#039;&lt;br /&gt;
:::Toggle this button to switch between white and coloured home screen category names. The coloured categories will follow the chosen theme - blue, red or orange.&lt;br /&gt;
::&#039;&#039;&#039;Change category actions&#039;&#039;&#039;&lt;br /&gt;
:::Here you can change the functions of all main home screen categories. Clicking a category name will open up a dialog.&lt;br /&gt;
:::Full support for all library nodes.&lt;br /&gt;
::&#039;&#039;&#039;Hide categories&#039;&#039;&#039;&lt;br /&gt;
:::Select to hide main categories: Music, Videos, Movies, TV Shows, Add-ons, Pictures, General, System, TV, Radio, Weather, Power.&lt;br /&gt;
::&#039;&#039;&#039;Add more categories&#039;&#039;&#039;&lt;br /&gt;
:::Add up to 16 custom categories to the home screen and choose between any favourite (add-ons, playlists, paths etc.) or a built-in skin preset. You can choose your own icon, category image (name of the category), background and add a custom widget. &lt;br /&gt;
:::&#039;&#039;[[Add-on:Rapier#Creating_a_custom_category|Click here for a detailed guide on creating a custom category.]]&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Reorder categories&#039;&#039;&#039;&lt;br /&gt;
:::Use this menu to completely reorder all home screen categories.&lt;br /&gt;
:::Category 1 will be the startup category when launching Kodi.&lt;br /&gt;
:::&#039;&#039;Please make sure all categories are used, or you will end up missing categories!&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;CATEGORY SUBMENU&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide submenus&#039;&#039;&#039;&lt;br /&gt;
:::Hides all submenus.&lt;br /&gt;
::&#039;&#039;&#039;Music / Videos / Movies / TV Shows / Programs / Add-ons / Games / Pictures / General / System / Live TV / Weather / Custom Category 1-16&#039;&#039;&#039;&lt;br /&gt;
:::You can remove, edit or create up to 7 custom submenus for each category using any favourite (add-ons, playlists, paths etc.), built-in skin preset, script or plugin. This is very useful in a lot of different ways.&lt;br /&gt;
:::&#039;&#039;[[Add-on:Rapier#Adding.2C_removing_or_editing_submenus|Click here for a detailed guide on adding, removing or editing a submenu item.]]&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;CATEGORY ICON&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide category icons&#039;&#039;&#039;&lt;br /&gt;
:::Hides all category icons.&lt;br /&gt;
::&#039;&#039;&#039;Custom category icon&#039;&#039;&#039;&lt;br /&gt;
:::Select a custom category icon for the main categories.&lt;br /&gt;
:&#039;&#039;&#039;INFO PANEL&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide now playing&#039;&#039;&#039;&lt;br /&gt;
:::When playing music or video, Rapier will display a Now Playing widget. This setting allows you to hide the widget.&lt;br /&gt;
::&#039;&#039;&#039;Hide recently added&#039;&#039;&#039;&lt;br /&gt;
:::Hide the Recently Added widget. Enabling this will also hide the In Progress widget.&lt;br /&gt;
::&#039;&#039;&#039;Hide &amp;quot;in progress&amp;quot; / random&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the In Progress widget.&lt;br /&gt;
::&#039;&#039;&#039;Hide in cinemas / upcoming movies&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [[Add-on:ExtendedInfo_Script|script.extendedinfo]] (minimum version 3.0.0)&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the In Cinemas / Upcoming Movies widget for the movie category.&lt;br /&gt;
::&#039;&#039;&#039;Hide tv show next aired&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the TV Show Next Aired widget for the tv shows category.&lt;br /&gt;
::&#039;&#039;&#039;Hide videos&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the video widget for the Videos category.&lt;br /&gt;
::&#039;&#039;&#039;Hide Add-ons&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the Add-on widgets for the Add-ons category.&lt;br /&gt;
::&#039;&#039;&#039;Hide Games&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the Games widget for the Games category.&lt;br /&gt;
::&#039;&#039;&#039;Hide favourites&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the favourites widget for the general category. If the weather category is disabled, the weather widget is displayed for the general category instead.&lt;br /&gt;
::&#039;&#039;&#039;Hide weather&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the weather widget for the weather category.&lt;br /&gt;
::&#039;&#039;&#039;Hide PVR channels&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the PVR channels / recordings widgets for the TV / Radio category.&lt;br /&gt;
::&#039;&#039;&#039;Hide recording information&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the recording information widgets when recording tv / radio.&lt;br /&gt;
::&#039;&#039;&#039;Hide system information&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will hide the system information widget for the system category.&lt;br /&gt;
:&#039;&#039;&#039;ADD-ON SHORTCUTS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable add-on shortcut titles&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this option will display add-on titles for each of the add-on shortcuts.&lt;br /&gt;
::&#039;&#039;&#039;Videos / Movies / TV Shows / Music / Pictures / Programs / Add-ons / General&#039;&#039;&#039;&lt;br /&gt;
:::Select up to 6 add-on shortcuts for each category. Selecting an add-on shortcut will disable the category icon for the chosen category.&lt;br /&gt;
&lt;br /&gt;
=== Media ===&lt;br /&gt;
:&#039;&#039;&#039;GENERAL&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Select rating&#039;&#039;&#039;&lt;br /&gt;
:::This will open a dialog to select if the ratings used in media windows are the default ratings or user ratings (&amp;quot;My rating&amp;quot;).&lt;br /&gt;
:&#039;&#039;&#039;VIDEOS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Play trailers in a window (video information window)&#039;&#039;&#039;&lt;br /&gt;
:::This will play trailers in windowed mode in the video information window only.&lt;br /&gt;
::&#039;&#039;&#039;Right clicking scrollbar plays trailer&#039;&#039;&#039;&lt;br /&gt;
:::This setting will disable the playback of trailers when moving right or down from a scrollbar inside the video libraries.&lt;br /&gt;
::&#039;&#039;&#039;Use alternative duration&#039;&#039;&#039;&lt;br /&gt;
:::By default Kodi displays duration of videos in minutes (eg. 112 minutes). Enabling this setting will display the duration in hours and minutes (eg. 1h52).&lt;br /&gt;
::&#039;&#039;&#039;Select movie genre icon pack&#039;&#039;&#039;&lt;br /&gt;
:::This setting allows you to select an image resource add-on genre pack to use with the skin. I recommend installing Xzener&#039;s Reflected Icons.&lt;br /&gt;
:::Defaults to use the skin.rapier/extras/moviegenres/ folder for manually adding images if no image resource add-on is selected.&lt;br /&gt;
:&#039;&#039;&#039;VIDEO PLAYING&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable video playing in the background&#039;&#039;&#039;&lt;br /&gt;
:::When playing video, this setting will enable the video playing in the background throughout the skin.&lt;br /&gt;
:&#039;&#039;&#039;FULLSCREEN VIDEO&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide seekbar OSD during fullscreen playback&#039;&#039;&#039;&lt;br /&gt;
:::Hides the seekbar when playing fullscreen audio or video.&lt;br /&gt;
::&#039;&#039;&#039;Show information when paused&#039;&#039;&#039;&lt;br /&gt;
:::Shows the information dialog, when video is paused.&lt;br /&gt;
::&#039;&#039;&#039;Automatically close OSD&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This will automatically close the video OSD, when the system has been idle for x seconds.&lt;br /&gt;
::&#039;&#039;&#039;OSD autoclose time (seconds)&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This is the time in seconds before the video OSD will automatically close, when the system is idle.&lt;br /&gt;
:::Defaults to 4 seconds.&lt;br /&gt;
::&#039;&#039;&#039;Show clear art on OSD&#039;&#039;&#039;&lt;br /&gt;
:::Displays clear art images on the OSD when playing movies or tv show episodes. If no clear art is available, a clear logo will be displayed. If no clear logo is available, the cover image will be displayed. Clear art and clear logos require the add-on Artwork Downloader. You can either run Artwork Downloader in the background using the add-on&#039;s settings, manually download the artwork in the movie or tv show library or download using Rapier&#039;s Add-ons skin settings section.&lt;br /&gt;
::&#039;&#039;&#039;Show clear logo on OSD&#039;&#039;&#039;&lt;br /&gt;
:::Displays clear logo images on the OSD when playing movies or tv show episodes. If no clear logo is available, the cover image will be displayed. Clear logos require the add-on Artwork Downloader. You can either run Artwork Downloader in the background using the add-on&#039;s settings, manually download the artwork in the movie or tv show library or download using Rapier&#039;s Add-ons skin settings section.&lt;br /&gt;
::&#039;&#039;&#039;Show &amp;quot;Paused&amp;quot; in fullscreen video&#039;&#039;&#039;&lt;br /&gt;
:::When pausing fullscreen video, this setting will dim the screen slighly and display a &amp;quot;Paused&amp;quot; label.&lt;br /&gt;
:&#039;&#039;&#039;TV SHOWS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Use banner / poster layout&#039;&#039;&#039;&lt;br /&gt;
:::Choose between displaying tv show poster or banner images throughout the skin.&lt;br /&gt;
:&#039;&#039;&#039;TV / RADIO&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This section will only be visible if live tv / PVR is enabled.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Select multi image path for tv channels / recordings&#039;&#039;&#039;&lt;br /&gt;
:::Use this option to select a folder of images (or a folder with a single image) to be used in the tv channels / recordings view.&lt;br /&gt;
:::If no folder is selected, the default images will be used.&lt;br /&gt;
::&#039;&#039;&#039;Select multi image path for radio channels / recordings&#039;&#039;&#039;&lt;br /&gt;
:::Use this option to select a folder of images (or a folder with a single image) to be used in the radio channels / recordings view.&lt;br /&gt;
:::If no folder is selected, the default images will be used.&lt;br /&gt;
:&#039;&#039;&#039;MUSIC&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable music CD art&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will display CD Art images throughout the skin when playing music. This requires either the add-on CDArt Manager and/or manually adding cdart.png images to your music library folders.&lt;br /&gt;
::&#039;&#039;&#039;Select music library path for clear logos&#039;&#039;&#039;&lt;br /&gt;
:::Enter the path to your music library if you wish to enable clear logos in your Kodi music library.&lt;br /&gt;
:::&#039;&#039;Leaving this blank will disable clear logos in the music library.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Select music genre icon pack&#039;&#039;&#039;&lt;br /&gt;
:::This setting allows you to select an image resource add-on genre pack to use with the skin. I recommend installing Music Genre Icons - Text.&lt;br /&gt;
:::Defaults to use the skin.rapier/extras/musicgenres/ folder for manually adding images if no image resource add-on is selected.&lt;br /&gt;
:&#039;&#039;&#039;MUSIC PLAYING&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable fullscreen window when starting music&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Removed from Kodi 19 / Rapier 12. Go to &amp;quot;Settings &amp;gt; Media &amp;gt; Music &amp;gt; Switch to visualization on playback&amp;quot; instead.&#039;&#039;&lt;br /&gt;
:::Enabling this setting will immediately open up the fullscreen music window when music playback is started.&lt;br /&gt;
::&#039;&#039;&#039;Enable music visualization / artist fanart in the background&#039;&#039;&#039;&lt;br /&gt;
:::Enable this setting to display music visualization or artist fanart in the background throughout the skin when playing music.&lt;br /&gt;
::&#039;&#039;&#039;Choose background&#039;&#039;&#039;&lt;br /&gt;
:::Clicking this button will open up a dialog, where you can choose between these background options throughout the skin:&lt;br /&gt;
:::* Use only visualization for background&lt;br /&gt;
:::* Use only artist fanart for background&lt;br /&gt;
:::* Use both music visualization and artist fanart for background&lt;br /&gt;
::&#039;&#039;&#039;Fanart slideshow&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will display an artist slideshow in the background when playing music.&lt;br /&gt;
:::This setting requires the add-on [[Add-on:Artist_Slideshow|Artist Slideshow]] and the skin setting &amp;quot;Use only artist fanart for background&amp;quot; or &amp;quot;Use both music visualization and artist fanart for background&amp;quot;.&lt;br /&gt;
::&#039;&#039;&#039;Animate fanart backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will animate the fanart in the background throughout the skin when music is playing.&lt;br /&gt;
:::This requires the skin setting &amp;quot;Use only artist fanart for background&amp;quot; or &amp;quot;Use both music visualization and artist fanart for background&amp;quot;.&lt;br /&gt;
:&#039;&#039;&#039;FULLSCREEN MUSIC&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Show CD art and info in fullscreen music playback&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will display CD Art images in the music visualization when playing music. This requires either the add-on CDArt Manager and/or manually adding cdart.png images to your music library folders.&lt;br /&gt;
::&#039;&#039;&#039;Show &amp;quot;Paused&amp;quot; in fullscreen music&#039;&#039;&#039;&lt;br /&gt;
:::When pausing fullscreen music, this setting will dim the screen slighly and display a &amp;quot;Paused&amp;quot; label.&lt;br /&gt;
::&#039;&#039;&#039;Lyrics add-on&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::Select your preferred lyrics add-on to use in the music visualization window.&lt;br /&gt;
::&#039;&#039;&#039;Lyrics settings&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the selected lyrics add-on.&lt;br /&gt;
::&#039;&#039;&#039;Enable video lyrics&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [[Add-on:CU_LRC_Lyrics|CU LRC Lyrics]]&#039;&#039;&lt;br /&gt;
:::During fullscreen music playback, this will enable music video style animated lyrics in sync with the music playing.&lt;br /&gt;
:::&#039;&#039;[[Add-on:Rapier#Video_lyrics_for_fullscreen_music_playback_in_Rapier|Watch the video demo above.]]&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Automatically close OSD&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This will automatically close the music OSD, when the system has been idle for x seconds.&lt;br /&gt;
::&#039;&#039;&#039;OSD autoclose time (seconds)&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Kodi 20 / Rapier 13.&#039;&#039;&lt;br /&gt;
:::This is the time in seconds before the music OSD will automatically close, when the system is idle.&lt;br /&gt;
:::Defaults to 4 seconds.&lt;br /&gt;
:&#039;&#039;&#039;PICTURES&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Show &amp;quot;Paused&amp;quot; in picture slideshow&#039;&#039;&#039;&lt;br /&gt;
:::When pausing a fullscreen picture slideshow, this setting will display the current time and a &amp;quot;Paused&amp;quot; label.&lt;br /&gt;
:&#039;&#039;&#039;MEDIA FLAGGING&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable media flags &#039;&#039;(Enabling all media flags may break the layout)&#039;&#039;&#039;&lt;br /&gt;
:::This setting will enable or disable all media flags.&lt;br /&gt;
::&#039;&#039;&#039;Use default theme colour / Use white theme colour&#039;&#039;&#039;&lt;br /&gt;
:::Choose between blue (default) or white media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide video resolution&#039;&#039;&#039;&lt;br /&gt;
:::This setting will hide the video resolution media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide aspect ratio&#039;&#039;&#039;&lt;br /&gt;
:::This setting will hide the aspect ratio media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide rating&lt;br /&gt;
:::This setting will hide the rating media flags.&lt;br /&gt;
::&#039;&#039;&#039;Hide subtitle count&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this setting will display a media flag with the number of subtitles available.&lt;br /&gt;
::&#039;&#039;&#039;Hide audio language count&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this setting will display a media flag with the number of audio languages available.&lt;br /&gt;
::&#039;&#039;&#039;Hide Next Aired&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires installation of the add-on [[Add-on:TV_Show_-_Next_Aired|TV Show Next Aired]]&#039;&#039;&lt;br /&gt;
:::This setting will hide the tv show status media flag in the tv show and season library.&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
:&#039;&#039;&#039;VIDEOS / MOVIES / TV SHOWS / EPISODES / MUSIC / MUSIC VIDEOS / PICTURES / ADD-ONS / PROGRAMS / MISCELLANEOUS&lt;br /&gt;
:::Here you can disable all view types you don&#039;t use in all windows and sections of Kodi.&lt;br /&gt;
:::TIP: Disabling &#039;&#039;&#039;every single&#039;&#039;&#039; view type you don&#039;t use will significantly speed up load times when entering windows and libraries.&lt;br /&gt;
&lt;br /&gt;
=== Configure Menus ===&lt;br /&gt;
:&#039;&#039;&#039;CONFIGURE MENUS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Shutdown Menu&#039;&#039;&#039;&lt;br /&gt;
:::Here you can enable/disable shutdown menu items. The items are enabled according to your hardware specifications.&lt;br /&gt;
::&#039;&#039;&#039;Context Menu&#039;&#039;&#039;&lt;br /&gt;
:::Here you can enable/disable context menu items. Most items requires add-ons. If a required add-on is not installed, clicking an item will prompt you to install it.&lt;br /&gt;
&lt;br /&gt;
=== Weather ===&lt;br /&gt;
:&#039;&#039;&#039;WEATHER&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Enable weather&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Removed from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::This will enable or disable the weather notification in the top status bar.&lt;br /&gt;
::&#039;&#039;&#039;Weather add-on&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::If a weather add-on is installed and enabled, the add-on name will display here.&lt;br /&gt;
:::If a weather add-on is not installed or disabled, you will be redirected to the weather settings window.&lt;br /&gt;
::&#039;&#039;&#039;Weather add-on settings&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Added from Rapier 12 / Kodi 19&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the selected weather add-on.&lt;br /&gt;
::&#039;&#039;&#039;Show in home window only / Show in all windows&#039;&#039;&#039;&lt;br /&gt;
:::This will either display the weather notification in the home window only or in all windows.&lt;br /&gt;
::&#039;&#039;&#039;Select weather icon pack&#039;&#039;&#039;&lt;br /&gt;
:::This setting allows you to select an image resource add-on weather icons pack to use with the skin.&lt;br /&gt;
:::Defaults to Kodi&#039;s default weather icons if no image resource add-on is selected.&lt;br /&gt;
&lt;br /&gt;
=== Backgrounds ===&lt;br /&gt;
:&#039;&#039;&#039;BACKGROUNDS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Fanart brightness - low / medium&#039;&#039;&#039;&lt;br /&gt;
:::Opens up a dialog to select the fanart background brightness on a 0-100% scale. Default is 30%.&lt;br /&gt;
::&#039;&#039;&#039;Animate custom backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enable this setting to animate the custom backgrounds.&lt;br /&gt;
::&#039;&#039;&#039;Animate fanart backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enable this setting to animate the fanart backgrounds.&lt;br /&gt;
::&#039;&#039;&#039;Time per Image for fanart backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Removed from Rapier 12 / Kodi 19.&lt;br /&gt;
:::&#039;&#039;This setting is only visible if the add-on [https://github.com/marcelveldt/script.skin.helper.backgrounds Skin Helper Backgrounds] is installed.&lt;br /&gt;
:::&#039;&#039;This setting is only enabled if fanart backgrounds have been selected for either the music, videos, movies, tv shows or pvr sections.&lt;br /&gt;
:::Clicking this button will bring up a numeric dialog. Use this to set the time in seconds each fanart image is shown. Defaults to 8 seconds.&lt;br /&gt;
::&#039;&#039;&#039;Select movie / tv show genre background pack&#039;&#039;&#039;&lt;br /&gt;
:::Select a genre background image pack to be used in the movies and tv shows genre node.&lt;br /&gt;
::&#039;&#039;&#039;Select music / music video genre background pack&#039;&#039;&#039;&lt;br /&gt;
:::Select a genre background image pack to be used in the music and music videos genre node.&lt;br /&gt;
:&#039;&#039;&#039;WIDGETS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Hide all widget backgrounds&#039;&#039;&#039;&lt;br /&gt;
:::Enabling this will hide the backgrounds for all home screen widgets, when they are focused.&lt;br /&gt;
:&#039;&#039;&#039;CUSTOM BACKGROUNDS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Global&#039;&#039;&#039;&lt;br /&gt;
:::Choose a custom single image or multi images to use globally throughout the skin. You can set the background brightness from 0-100%.&lt;br /&gt;
::&#039;&#039;&#039;Music  /  Videos  /  Movies  /  TV Shows / Add-ons &#039;&#039;(from Rapier 12 / Kodi 19)&#039;&#039; &#039;&#039;&#039;&lt;br /&gt;
:::For the music, videos, movies, tv shows and add-ons &#039;&#039;(from Rapier 12 / Kodi 19)&#039;&#039; sections, you can choose between four background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Fanart images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin. Select to display either random, recent, in progress or unwatched fanart images (all options will not be available for every category).&lt;br /&gt;
::&#039;&#039;&#039;TV / Radio&#039;&#039;&#039;&lt;br /&gt;
:::For the tv and radio sections, you can choose between four background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Random fanart images &#039;&#039;(Removed from Rapier 12 / Kodi 19)&#039;&#039;. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::&#039;&#039;&#039;Pictures&#039;&#039;&#039;&lt;br /&gt;
:::For the pictures section, you can choose between five background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Latest images from your library. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin. This setting requires the add-on [[forum:133905|MyPicsDB]].&lt;br /&gt;
::::* Random images from your library. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin. This setting requires the add-on [[forum:133905|MyPicsDB]].&lt;br /&gt;
::&#039;&#039;&#039;Add-ons (Rapier 11 / Kodi 18 and below) /  Games /  General  /  System  /  Power&#039;&#039;&#039;&lt;br /&gt;
:::For the programs, add-ons, games, general, system and power sections, you can choose between three background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::&#039;&#039;&#039;Weather&#039;&#039;&#039;&lt;br /&gt;
:::For the weather section, you can choose between 5 background options:&lt;br /&gt;
::::* The global background.&lt;br /&gt;
::::* A custom single image. You can set the background brightness from 0-100%, and choose between displaying the background in the home screen only or throughout the skin.&lt;br /&gt;
::::* Multi images. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Weather condition backgrounds. Select the path to your weather fanart folder. You can set the background brightness from 0-100%, and choose between displaying the backgrounds in the home screen only or throughout the skin.&lt;br /&gt;
::::* Condition (Add-on). This setting allows you to select an image resource add-on weather fanart pack.&lt;br /&gt;
&lt;br /&gt;
=== Add-ons ===&lt;br /&gt;
::&#039;&#039;&#039;&#039;&#039;NOTE: Category completely removed from Rapier 12 / Kodi 19&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;LYRICS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Path&#039;&#039;&#039;&lt;br /&gt;
:::Select your preferred lyrics add-on to use in the music visualization window.&lt;br /&gt;
::&#039;&#039;&#039;Lyrics settings&#039;&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the selected lyrics add-on.&lt;br /&gt;
:&#039;&#039;&#039;ARTWORK DOWNLOADER&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the Artwork Downloader add-on.&lt;br /&gt;
::&#039;&#039;&#039;Download according to add-on settings&#039;&#039;&#039;&lt;br /&gt;
:::This will download all artwork specified in the Artwork Downloader settings.&lt;br /&gt;
::&#039;&#039;&#039;Download presets - movies&#039;&#039;&#039;&lt;br /&gt;
:::Hide or show all the settings for the movie artwork downloads.&lt;br /&gt;
::&#039;&#039;&#039;All&#039;&#039;&#039;&lt;br /&gt;
:::Download all movie artwork: poster, fanart, extra fanart, extra thumbs, thumbnail 16:9, clear art, clear logo. All artwork for every movie will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Poster / Fanart / Extra fanart / Extra thumbs / Thumbnail 16:9 / Clear art / Clear logo&#039;&#039;&#039;&lt;br /&gt;
:::Download only the movie artwork specified. The selected artwork for all movies wil be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Download presets - tv shows&#039;&#039;&#039;&lt;br /&gt;
:::Hide or show all the settings for the tv shows artwork downloads.&lt;br /&gt;
::&#039;&#039;&#039;All&#039;&#039;&#039;&lt;br /&gt;
:::Download all tv show artwork: poster, season poster, banner, season banner, fanart, extra fanart, extra thumbs, clear art, clear logo, tv thumb 16:9. All artwork for every tv show will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Poster / Season poster / Banner / Season banner / Fanart / Extra fanart / Extra thumbs / Clear art / Clear logo / TV thumb 16:9&#039;&#039;&#039;&lt;br /&gt;
:::Download only the tv show artwork specified. The selected artwork for all tv shows will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Download presets - music videos&#039;&#039;&#039;&lt;br /&gt;
:::Hide or show all the settings for the music videos artwork downloads.&lt;br /&gt;
::&#039;&#039;&#039;All&#039;&#039;&#039;&lt;br /&gt;
:::Download all music video artwork: poster, fanart, extra fanart, clear art, clear logo. All artwork for every music video will be downloaded.&lt;br /&gt;
::&#039;&#039;&#039;Poster / Fanart / Extra fanart / Clear art / Clear logo&#039;&#039;&#039;&lt;br /&gt;
:::Download only the music video artwork specified. The selected artwork for all music videos will be downloaded.&lt;br /&gt;
:&#039;&#039;&#039;IMDB UPDATE&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;This section will only be available of you have installed the add-on [http://forum.kodi.tv/showthread.php?tid=167754 IMDb Update] on your system.&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
:::This will open the settings dialog for the add-on [http://forum.kodi.tv/showthread.php?tid=167754 IMDb Update].&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb movie rating&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb movie rating for all movies in your library.&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb movie rating (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb movie rating for all movies in your library. The service will run in the background.&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb top 250&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb top 250 for all movies in your library.&lt;br /&gt;
::&#039;&#039;&#039;Update IMDb top 250 (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update the IMDb top 250 for all movies in your library. The service will run in the background.&lt;br /&gt;
::&#039;&#039;&#039;Update MPAA rating&#039;&#039;&#039;&lt;br /&gt;
:::This will update the MPAA rating for all movies in your library.&lt;br /&gt;
::&#039;&#039;&#039;Update MPAA rating (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update the MPAA rating for all movies in your library. The service will run in the background.&lt;br /&gt;
::&#039;&#039;&#039;Update All&#039;&#039;&#039;&lt;br /&gt;
:::This will update all options for this add-on.&lt;br /&gt;
::&#039;&#039;&#039;Update All (hidden)&#039;&#039;&#039;&lt;br /&gt;
:::This will update all options for this add-on. The service will run in the background.&lt;br /&gt;
&lt;br /&gt;
=== Supported Add-ons ===&lt;br /&gt;
:::This section contains two sub sections:&lt;br /&gt;
::::*Automatic installation from Kodi add-on repository&lt;br /&gt;
:::::This is a list of add-ons from the official Kodi add-on repository supported by Rapier. Each add-on will display a description when focused.&lt;br /&gt;
::::::If an add-on is installed and enabled you will see the add-on version information. Clicking the add-on will open up the settings dialog.&lt;br /&gt;
::::::If an add-on is installed but disabled, clicking the item will prompt you to enable the add-on and guide you through the process. (Rapier 12 / Kodi 19 only)&lt;br /&gt;
::::::If an add-on is not installed, clicking the item will prompt you to install the add-on and guide you through the process.&lt;br /&gt;
::::*Manual installation&lt;br /&gt;
:::::This list of add-ons supported by Rapier is &#039;&#039;not&#039;&#039; in the official Kodi add-on repository. Each add-on will display a description when focused.&lt;br /&gt;
::::::If an add-on is installed and enabled you will see the add-on version information. Clicking the add-on will open up the settings dialog.&lt;br /&gt;
::::::If an add-on is installed but disabled, clicking the item will prompt you to enable the add-on and guide you through the process. (Rapier 12 / Kodi 19 only)&lt;br /&gt;
::::::If an add-on is not installed, clicking the item will display an error notification. You can only install these add-ons manually from zip.&lt;br /&gt;
&lt;br /&gt;
=== Reset Skin / Skin Settings ===&lt;br /&gt;
:&#039;&#039;&#039;SKIN SETTINGS&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Reset skin settings to default (press to confirm).&#039;&#039;&#039;&lt;br /&gt;
:::This will reset all skin settings to default. You can NOT undo this action.&lt;br /&gt;
::&#039;&#039;&#039;Export skin settings&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [https://github.com/marcelveldt/script.skin.helper.skinbackup Skin Helper Skinbackup]&#039;&#039;&lt;br /&gt;
:::Exports all the Rapier skin settings to your selected location.&lt;br /&gt;
::&#039;&#039;&#039;Import skin settings.&#039;&#039;&#039;&lt;br /&gt;
:::&#039;&#039;Requires the add-on [https://github.com/marcelveldt/script.skin.helper.skinbackup Skin Helper Skinbackup]&#039;&#039;&lt;br /&gt;
:::Imports all the Rapier skin settings from your selected location.&lt;br /&gt;
:&#039;&#039;&#039;OTHER&#039;&#039;&#039;&lt;br /&gt;
::&#039;&#039;&#039;Reload skin&#039;&#039;&#039;&lt;br /&gt;
:::This will reload the skin and can be useful for reloading xml files, images, fonts and other changes.&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
[https://www.transifex.com/teamxbmc/kodi-skins/skin-rapier/ Translations of the skin are handled on Transifex.]&lt;br /&gt;
&lt;br /&gt;
Please take a moment to check if your language is up to date, and all strings are translated. You can help out by signing up on Transifex, join the project and translate the skin to your native language.&lt;br /&gt;
&lt;br /&gt;
A huge thanks to all the translators for the great work - it&#039;s really appreciated!&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
You can follow the latest development on Github.&lt;br /&gt;
* [https://github.com/gade01/Rapier Rapier 12 - Kodi 19 Matrix]&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Leia Rapier 11 - Kodi 18 Leia]&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Krypton Rapier 10 - Kodi 17 Krypton]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Jarvis Rapier 9 - Kodi 16 Jarvis]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Isengard Rapier 8 - Kodi 15 Isengard]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Helix Rapier 7 - Kodi 14 Helix]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Gotham Rapier 6 - XBMC 13 Gotham]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Frodo Rapier 5 - XBMC 12 Frodo]  -  DEPRECATED&lt;br /&gt;
* [https://github.com/gade01/Rapier/tree/Eden Rapier 4 - XBMC 11 Eden]  -  DEPRECATED&lt;br /&gt;
&lt;br /&gt;
== Changelogs ==&lt;br /&gt;
* [https://www.dropbox.com/s/dv4jk2fcudw3k4z/changelog.txt?dl=0 View changelog for Rapier 12 - Kodi 19 Matrix]&lt;br /&gt;
* [https://www.dropbox.com/s/mqyx0wy7tqchee0/changelog.txt?dl=0 View changelog for Rapier 11 - Kodi 18 Leia]&lt;br /&gt;
* [https://www.dropbox.com/s/fpr7kaqxwsk61sy/changelog.txt?dl=0 View changelog for Rapier 10 - Kodi 17 Krypton]&lt;br /&gt;
* [https://www.dropbox.com/s/niaeaddbfifk6s6/changelog.txt?dl=0 View changelog for Rapier 9 - Kodi 16 Jarvis]&lt;br /&gt;
* [https://www.dropbox.com/s/chwzv9mbctsrlip/changelog.txt?dl=0 View changelog for Rapier 8 - Kodi 15 Isengard]&lt;br /&gt;
* [https://www.dropbox.com/s/091grvjawrif5rw/changelog.txt?dl=0 View changelog for Rapier 7 - Kodi 14 Helix]&lt;br /&gt;
* [https://www.dropbox.com/s/oi0y8c80quyn93b/changelog.txt?dl=0 View changelog for Rapier 6 - XBMC 13 Gotham]&lt;br /&gt;
* [https://www.dropbox.com/s/5q4zvdig1y4u72t/changelog.txt?dl=0 View changelog for Rapier 5 - XBMC 12 Frodo]&lt;br /&gt;
* [https://raw.githubusercontent.com/gade01/Rapier/Eden/changelog.txt View changelog for Rapier 4.x - XBMC 11 Eden]&lt;br /&gt;
&lt;br /&gt;
{{Compat&lt;br /&gt;
 | Works with Atlantis = {{No}}&lt;br /&gt;
 | Works with Babylon  = {{No}}&lt;br /&gt;
 | Works with Camelot  = {{Yes}}&lt;br /&gt;
 | Works with Dharma   = {{Yes}}&lt;br /&gt;
 | Works with Eden     = {{Yes}}&lt;br /&gt;
 | Works with Frodo    = {{Yes}}&lt;br /&gt;
 | Works with Gotham   = {{Yes}}&lt;br /&gt;
 | Works with Helix    = {{Yes}}&lt;br /&gt;
 | Works with Isengard = {{Yes}}&lt;br /&gt;
 | Works with Jarvis   = {{Yes}}&lt;br /&gt;
 | Works with Krypton  = {{Yes}}&lt;br /&gt;
 | Works with Leia     = {{Yes}}&lt;br /&gt;
 | Works with Matrix   = {{Yes}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-ons with license tag]]&lt;br /&gt;
[[Category:Add-ons with source tag]]&lt;br /&gt;
[[Category:Add-ons with website tag]]&lt;br /&gt;
[[Category:All add-ons]]&lt;br /&gt;
[[Category:Skins]]&lt;br /&gt;
[[Category:Gotham add-on repository]]&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;br /&gt;
[[Category:Isengard add-on repository]]&lt;br /&gt;
[[Category:Jarvis add-on repository]]&lt;br /&gt;
[[Category:Krypton add-on repository]]&lt;br /&gt;
[[Category:Leia add-on repository]]&lt;br /&gt;
[[Category:Matrix add-on repository]]&lt;br /&gt;
[[Category:Nexus add-on repository]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241890</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241890"/>
		<updated>2022-04-14T03:16:44Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* History */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised.&amp;lt;br/&amp;gt;&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate GNU gettext strings.po files.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://kodi.tv/article/switching-translations-to-weblate/ In 2021 Kodi switched translation platform to Weblate.]&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
You can create a new account or use an existing Google, Facebook or Github account.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&amp;lt;br/&amp;gt;&lt;br /&gt;
It depends how many translations are done for a specific language, but usually new versions are released once a month.&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_portal&amp;diff=241889</id>
		<title>Language portal</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_portal&amp;diff=241889"/>
		<updated>2022-04-14T01:20:09Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Fonts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&lt;br /&gt;
= Languages =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Language_support|Language Support]]}}&#039;&#039;&#039;&lt;br /&gt;
This page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi.&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_language_codes_(ISO-639:1988)|Language Codes - (ISO-639)]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Translations =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translations|Translations in {{kodi}}]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for users and translators, detailing how to translate Kodi and other add-ons into native languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
A full introduction is made to our translation system at Weblate.&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translating_add-ons|Translating your Add-on]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for add-on developers, detailing how to add your add-on, skin etc. to our translation system at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure to read the best practices guide, as many errors and merge conflicts can be avoided by following these steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fonts =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Fonts|Using Fonts]]}}&#039;&#039;&#039;&lt;br /&gt;
Information and details about font.xml and supported font types.&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_supported_charsets|Supported Character Sets]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Interface/Regional|Change {{kodi}} language and regional settings]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Player/Language|Change Audio and Subtitle Languages]]}}&#039;&#039;&#039;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_support&amp;diff=241885</id>
		<title>Language support</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_support&amp;diff=241885"/>
		<updated>2022-04-14T01:07:16Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* What is strings.po */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
The following page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi.&amp;lt;br/&amp;gt;&lt;br /&gt;
English (United Kingdom) is the default language of Kodi so it is the English language in the Git repository that is always up-to-date.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please always base your translations of the latest English language file from Git. The latest language files for Kodi can be found and downloaded [https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po here (link)].&lt;br /&gt;
&lt;br /&gt;
=== Language add-ons ===&lt;br /&gt;
By default Kodi only includes one language which is English (united Kingdom). All other languages have been moved to [https://kodi.wiki/view/Category:Language_add-ons individual language add-ons] which are available form our Kodi repository for download and install. They are auto update by Team Kodi once in a while and pushed to our repository from which you will receive these updates depending on what language(s) you have installed.&lt;br /&gt;
&lt;br /&gt;
=== What is langinfo.xml ===&lt;br /&gt;
The langinfo.xml file contains language and region specific localization settings used internally by Kodi. Basically it is the default [http://en.wikipedia.org/wiki/Code_page code page] Kodi uses for this language file.&lt;br /&gt;
&lt;br /&gt;
==== Layout of a langinfo.xml file ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&lt;br /&gt;
    &amp;lt;charsets&amp;gt;&lt;br /&gt;
      &amp;lt;gui&amp;gt;GB2312&amp;lt;/gui&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;GB2312&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/charsets&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;dvd&amp;gt;&lt;br /&gt;
      &amp;lt;menu&amp;gt;cn&amp;lt;/menu&amp;gt;&lt;br /&gt;
      &amp;lt;audio&amp;gt;cn&amp;lt;/audio&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;cn&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/dvd&amp;gt;&lt;br /&gt;
  &amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;charset&amp;gt; section:&lt;br /&gt;
&amp;lt;gui&amp;gt;: Specifies the character encoding of everything within Kodi that is not unicode. E.g. id3 tags with none unicode encoding.&lt;br /&gt;
&amp;lt;subtitle&amp;gt;: Default character encoding of subtitles when using a TTF (True-Type-Font).&lt;br /&gt;
Choose one encoding for each in the list below. The values may differ if you like.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The &amp;lt;dvd&amp;gt; section:&lt;br /&gt;
Defines the default languages for DVD-Video menu, audio and subtitle language for the [[VideoPlayer]]. Choose one for each entry out of the list of ISO-639 language abbreviations. If the DVD-Video you are playing does not support the language that you specified then it will default to English.&lt;br /&gt;
&lt;br /&gt;
=== What is strings.po ===&lt;br /&gt;
This GNU Gettext format file contains all text strings displayed in the user interface of Kodi.&amp;lt;br/&amp;gt;&lt;br /&gt;
Using that file the entire application or any add-on can be translated to any language whose graphemes are available within Unicode.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the strings.po file ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# Kodi Media Center language file&lt;br /&gt;
# Addon Name: Skin Widgets&lt;br /&gt;
# Addon id: service.skin.widgets&lt;br /&gt;
# Addon Provider: Martijn, phil65&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: Kodi Addons\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: translations@kodi.tv\n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: Kodi Translation Team\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: English (https://kodi.weblate.cloud/languages/en_gb/)\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=UTF-8\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&amp;quot;Language: en\n&amp;quot;&lt;br /&gt;
&amp;quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32001&amp;quot;&lt;br /&gt;
msgid &amp;quot;Recommended&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32002&amp;quot;&lt;br /&gt;
msgid &amp;quot;Random Items&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# empty string with id 32003&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32004&amp;quot;&lt;br /&gt;
msgid &amp;quot;Randomize time (minutes)&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32005&amp;quot;&lt;br /&gt;
msgid &amp;quot;Use season folders&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a format defined by [https://www.gnu.org/software/gettext/ GNU gettext] but adapted in a very specific way by Kodi. The blocks of 3 settings in the example above are defined by GNU gettext as:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &#039;&#039;context&#039;&#039;&lt;br /&gt;
 msgid &#039;&#039;untranslated-string&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translated-string&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Where the text is defined by &#039;&#039;untranslated-string&#039;&#039; and &#039;&#039;context&#039;&#039; serves to differentiate identical values.&lt;br /&gt;
&lt;br /&gt;
Take note, in Kodi, these are used as follows:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &amp;quot;#&#039;&#039;label_id&#039;&#039;&amp;quot;&lt;br /&gt;
 msgid &#039;&#039;label_text&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;label_id&#039;&#039; is a numeric ID. These IDs are reserved by Kodi:&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
and are used in [[Add-on_settings_conversion|settings.xml]] to label settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;label_text&#039;&#039; defines the English text for the label.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;translation&#039;&#039; is empty for &amp;quot;en_GB&amp;quot; labels, and the translation for other languages with msgid retaining the English text.&lt;br /&gt;
&lt;br /&gt;
The important thing is that you cannot refer to the label with msgid in the settings.py file, you need to use the &#039;&#039;label_id&#039;&#039; which must be encoded in msgctxt as above.&lt;br /&gt;
&lt;br /&gt;
You can of course edit .po files in a text editor or with a specialist editor.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the language folders ====&lt;br /&gt;
&lt;br /&gt;
Kodi loads the strings.po file depending on the set interface language. Should it find a matching language it will try to load that strings.po. If not available it will always fall back to English (United Kingdom).&lt;br /&gt;
For this to work you will need to place the strings.po in the correctly named folder depending on the language. These folders use &amp;quot;language-country&amp;quot; naming scheme. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Add-ons:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/resources/language/resource.language.en_gb/strings.po&lt;br /&gt;
/resources/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/resources/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Skins:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/language/resource.language.en_gb/strings.po&lt;br /&gt;
/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Please use lower case for folder and file names.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
An extensive example list of used languages can be found here https://github.com/xbmc/xbmc/tree/master/addons/skin.estuary/language&lt;br /&gt;
&lt;br /&gt;
== Adding a new language to Kodi ==&lt;br /&gt;
&lt;br /&gt;
{{see|Language portal}}&lt;br /&gt;
&lt;br /&gt;
== Maintaining a language ==&lt;br /&gt;
The English (UK) language file ([https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po]) is the master for all language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
From time to time the English (UK) language file changes. This will instantly be automatically updated at Weblate translation pages.&lt;br /&gt;
&lt;br /&gt;
== Related articles in the Kodi online manual ==&lt;br /&gt;
* [[Translations|Translations in Kodi]]&lt;br /&gt;
* [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
* [[List_of_supported_charsets|List of Supported Charsets]]&lt;br /&gt;
* [[List of language codes (ISO-639:1988)]]&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
Kodi uses UTF-8 as internal character encoding. Please make sure if you add new features to Kodi which depend on external data to convert these to UTF-8 if they aren&#039;t already. Use the languagefile from branches/linuxport, since we merge that file into trunk.&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Skin development]]&lt;br /&gt;
[[Category:Languages|*]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Video_nodes&amp;diff=241884</id>
		<title>Video nodes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Video_nodes&amp;diff=241884"/>
		<updated>2022-04-14T00:53:28Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* XML node components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Video library]]|[[Video management|Management]] }}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Video nodes are defined views that are used to organize your media from the videos menu. &#039;&#039;Title, Director, Year, Studios, Countries, Genres&#039;&#039; are examples of Nodes. These Nodes can be customised using an XML file which gives flexibility in how you display your media. Custom nodes will work with any skin, but for ease of use a compatible skin is preferred.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Library node editor add-on ==&lt;br /&gt;
{{main|Add-on:Library Node Editor}}&lt;br /&gt;
Users can now create and edit video and music nodes from within {{kodi}} thanks to the community add-on [[Add-on:Library Node Editor|Lbrary Node Editor]].&lt;br /&gt;
&lt;br /&gt;
== Technical documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Default video nodes ===&lt;br /&gt;
[[File:defaultnodes.jpg|right|500px|frame|The standard video nodes]]&lt;br /&gt;
You can find a copy of the default nodes in one of two ways. One is to download all or some of the nodes you want form https://github.com/xbmc/xbmc/tree/master/system/library .&lt;br /&gt;
&lt;br /&gt;
The other way is to copy the Kodi system default nodes that come with Kodi, shown in the table below:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Operative system&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;default nodes paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039; || /data/data/org.xbmc.kodi/cache/apk/assets/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS&#039;&#039;&#039; - Varied || /Applications/Kodi.frappliance/KodiData/KodiHome/system/library/ &amp;lt;br /&amp;gt; /Applications/Kodi.app/KodiData/KodiHome/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || /usr/share/Kodi/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || /Applications/Kodi.app/Contents/Resources/Kodi/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (32bit)&#039;&#039;&#039; || C:\Program Files\Kodi\system\library\&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (64bit)&#039;&#039;&#039; || C:\Program Files (x86)\Kodi\system\library\&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To understand nodes a little better, lets take a look at one of the defaults. As an example take a quick look at the &#039;&#039;video/movies/years.xml&#039;&#039; node in its simplest form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;node order=&amp;quot;3&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;562&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultYear.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;group&amp;gt;years&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see we are using standard xml format here so nothing too complicated.&lt;br /&gt;
&lt;br /&gt;
=== XML node components ===&lt;br /&gt;
&#039;&#039;&#039;Order&#039;&#039;&#039; = This is the order that you want to show the nodes. Starts at 1 for the top and goes sequentially so 2 will be the next node down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Label&#039;&#039;&#039; = This is the text that will show for the node. In this case it is pointing to an ID in the strings.po file (for transltion purposes) It can also just be any String you want, just type some text instead of the id number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Path&#039;&#039;&#039; = This can be any valid Kodi path, such as a file path. This includes internal Kodi DB paths, such as &amp;lt;code&amp;gt;videodb://movies/genres/&amp;lt;/code&amp;gt;. For more on internal paths, see &#039;&#039;&#039;[[Opening Windows and Dialogs]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Icon&#039;&#039;&#039; = Pretty self explanatory really, this is the icon that will show when the node is navigated over.&lt;br /&gt;
&lt;br /&gt;
== Manually creating or editing a custom node ==&lt;br /&gt;
So now we understand how the default nodes work, lets have a look at making a custom node. Custom nodes live inside your [[Userdata]] folder. To create custom nodes, the first step is to copy the whole of the default node file structure from the default library folder to a new folder called &#039;&#039;library&#039;&#039; inside your [[Userdata]] folder.&lt;br /&gt;
&lt;br /&gt;
So, in the case of Windows, copy the &#039;video&#039; and the &#039;video_flat&#039; folders from &#039;&#039;C:\Program Files (x86)\Kodi\system\library&#039;&#039; to &#039;&#039;%appdata%\Kodi\userdata\library&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Why the whole lot? Well, currently it seems that when you have a custom video node in your userdata folder, it&#039;s assumed that you are customizing the node structure, and that therefore any nodes that are missing are missing intentionally.&lt;br /&gt;
&lt;br /&gt;
Having copied the node structure, we can now create a new xml file under the relevant directory.&lt;br /&gt;
&lt;br /&gt;
In a vanilla install with the confluence skin, custom nodes in &#039;&#039;/video&#039;&#039; will appear in the sub-list of the Video main menu item. &lt;br /&gt;
&lt;br /&gt;
Custom nodes in the &#039;&#039;/video/movies&#039;&#039; will appear in the sub-list of &#039;Movies&#039; which in turn appears in the sub-list of Video.&lt;br /&gt;
&lt;br /&gt;
In other skins (notably, Aeon Nox), custom main-menu items can be set to a custom video node, meaning that you can use your custom video nodes to have a main-menu item for your collection of post-modern european arthouse anime, if you so wish.&lt;br /&gt;
&lt;br /&gt;
For now, we&#039;re going to place our node under&lt;br /&gt;
&lt;br /&gt;
 /userdata/library/video/&lt;br /&gt;
&lt;br /&gt;
Let&#039;s call it Custom_Motor_dvds.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;10&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;(Custom) Motor DVDs&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultCars.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;limit&amp;gt;20&amp;lt;/limit&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;path&amp;quot; operator=&amp;quot;contains&amp;quot;&amp;gt;&amp;lt;value&amp;gt;ExtremeSports/Cars/&amp;lt;/value&amp;gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see as well as changing the order, we have a few more xml tags this time:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039; = Can be folder or filter, folder requires path to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Match&#039;&#039;&#039; = Specifies how many rules should match. In this case we are matching all rules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rule&#039;&#039;&#039; = Any rule created with the smart playlist editor. (See [[Smart playlists]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limit&#039;&#039;&#039; = Limit the number of results returned (can be excluded altogether for unlimited)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:motordvds.jpg|500px|Custom node in action]]&lt;br /&gt;
&lt;br /&gt;
So there you have it, a simple path filter for our Motor DVDs.&lt;br /&gt;
&lt;br /&gt;
One thing that you may want to do now is edit your &amp;quot;Title&amp;quot; xml file to remove the motor dvds from the main movie library. Though if you are attempting to setup a main movie entrypoint for a path labeled &amp;quot;Movies&amp;quot; it may be best to simply hide the default Movies entry from the main menu and create a &amp;quot;Custom Movies&amp;quot; video node that points to your specific path. Still you can remove paths using the DoesNotContain operator:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;2&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;Movies&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;movies&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultMovieTitle.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;path&amp;quot; operator=&amp;quot;doesnotcontain&amp;quot;&amp;gt;&amp;lt;value&amp;gt;/ExtremeSports/Cars/&amp;lt;/value&amp;gt;&amp;lt;/rule&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are many other rules you can apply, a simple way to find them is to have a go with the smart playlist editor and copy the rule from the resulting xml playlist. There are many possibilities, you could create a rule for any of the database fields such as genre or year, use paths or combine rules together.&lt;br /&gt;
&lt;br /&gt;
[[File:customnodes.jpg|500px|Various custom video nodes]]&lt;br /&gt;
&lt;br /&gt;
== Manually creating or editing a custom parent node ==&lt;br /&gt;
You can also create a nested node structure as can be observed in the &amp;quot;unflattened&amp;quot; default structure from [[Video_nodes|above]] (under video).&lt;br /&gt;
Then you simply create a folder containing valid xml node files and also include a &amp;quot;index.xml&amp;quot; file that looks like this (which of course can be adapted to the type of media required):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;1&amp;quot; visible=&amp;quot;Library.HasContent(Movies)&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;!-- a virtual folder --&amp;gt;&lt;br /&gt;
   &amp;lt;label&amp;gt;342&amp;lt;/label&amp;gt;&lt;br /&gt;
   &amp;lt;icon&amp;gt;DefaultMovies.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
[[File:PatK_Nodes.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Music_nodes| Music nodes]]&lt;br /&gt;
* [[Custom home items]]&lt;br /&gt;
* [[Smart playlists]]&lt;br /&gt;
* [[Video library tags]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
{{Updated|16}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Music_nodes&amp;diff=241883</id>
		<title>Music nodes</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Music_nodes&amp;diff=241883"/>
		<updated>2022-04-14T00:53:07Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* XML node components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Music library]]|[[:Category:Music_library|Category:Music Library]] }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;Music nodes are defined views that are used to organize your media from the music menu. In the past Kodi has had a number of standard nodes such as Artist, Album, Tracks that were hard coded. As of v15 Isengard, Kodi introduces the ability to customize these nodes using an XML file. Using XML files really gives great flexibility in how you display your media and lets you browse large collections quickly. Don&#039;t want your country music in your main album node... exclude it. Want a genre in a separate node, create it. Don&#039;t like how Top 100 Played is presented, change it.&lt;br /&gt;
&lt;br /&gt;
To get full functionality from custom nodes, you need to use a skin that allows you to deploy them as you would like (e.g. latest builds of Aeon Nox). Confluence will show your nodes, but doesn&#039;t allow you to decide exactly where.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Audio node editor add-on ==&lt;br /&gt;
{{main|Add-on:Library Node Editor}}&lt;br /&gt;
Users can now create and edit audio nodes from within {{kodi}} thanks to the add-on [[Add-on:Library Node Editor|Library Node Editor]].&lt;br /&gt;
&lt;br /&gt;
== Technical documentation ==&lt;br /&gt;
&lt;br /&gt;
=== Default audio nodes ===&lt;br /&gt;
[[File:defaultaudionodes.jpg|right|500px|frame|The standard audio nodes]]&lt;br /&gt;
You can find a copy of the default nodes in one of two ways. One is to download all or some of the nodes you want form https://github.com/xbmc/xbmc/tree/master/system/library .&lt;br /&gt;
&lt;br /&gt;
The other way is to copy the Kodi system default nodes that come with Kodi, shown in the table below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;4&amp;quot; class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Operative system&#039;&#039;&#039;&lt;br /&gt;
! &#039;&#039;&#039;default nodes paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039; || ? &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS&#039;&#039;&#039; - Varied || /Applications/XBMC.frappliance/XBMCData/XBMCHome/system/library/ &amp;lt;br /&amp;gt; /Applications/XBMC.app/XBMCData/XBMCHome/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || /usr/share/xbmc/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || /Applications/XBMC.app/Contents/Resources/XBMC/system/library/&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (32bit)&#039;&#039;&#039; || C:\Program Files\XBMC\system\library\&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows (64bit)&#039;&#039;&#039; || C:\Program Files (x86)\XBMC\system\library\&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To understand nodes a little better, lets take a look at one of the defaults. As an example take a quick look at the &#039;&#039;system/library/music/genres.xml&#039;&#039; node in its simplest form:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;node order=&amp;quot;1&amp;quot; type=&amp;quot;filter&amp;quot; visible=&amp;quot;Library.HasContent(Music)&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;135&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;icon&amp;gt;DefaultMusicGenres.png&amp;lt;/icon&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;artists&amp;lt;/content&amp;gt;&lt;br /&gt;
  &amp;lt;group&amp;gt;genres&amp;lt;/group&amp;gt;&lt;br /&gt;
&amp;lt;/node&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see we are using standard XML format here so nothing too complicated.&lt;br /&gt;
&lt;br /&gt;
=== XML node components ===&lt;br /&gt;
&#039;&#039;&#039;Order&#039;&#039;&#039; = This is the order that you want to show the nodes. Starts at 1 for the top and goes sequentially so 2 will be the next node down.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Label&#039;&#039;&#039; = This is the text that will show for the node. In this case it is pointing to an ID in the strings.po file (for translation purposes) It can also just be any String you want, just type some text instead of the id number.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Path&#039;&#039;&#039; = This can be any valid Kodi path, such as a file path. This includes internal Kodi DB paths, such as &amp;lt;code&amp;gt;musicdb://recentlyaddedalbums&amp;lt;/code&amp;gt;. For more on internal paths, see &#039;&#039;&#039;[[Opening Windows and Dialogs]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Icon&#039;&#039;&#039; = Pretty self explanatory really, this is the icon that will show when the node is navigated over.&lt;br /&gt;
&lt;br /&gt;
== Manually creating or editing a custom node ==&lt;br /&gt;
So now we understand how the default nodes work, lets have a look at making a custom node. Custom nodes live inside your [[Userdata]] folder. To create custom nodes, the first step is to copy the whole of the default node file structure from the default library folder to a new folder called &#039;&#039;library&#039;&#039; inside your [[Userdata]] folder.&lt;br /&gt;
&lt;br /&gt;
So, in the case of Windows, copy the &#039;music&#039; folder from &#039;&#039;C:\Program Files (x86)\XBMC\system\library&#039;&#039; to &#039;&#039;%appdata%\XBMC\userdata\library&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Having copied the node structure, we can now create a new xml file under the relevant directory.&lt;br /&gt;
&lt;br /&gt;
In a vanilla install with the confluence skin, custom nodes in &#039;&#039;/music&#039;&#039; will appear in the sub-list of the Music main menu item. &lt;br /&gt;
&lt;br /&gt;
For now, we&#039;re going to place our node under&lt;br /&gt;
&lt;br /&gt;
 /userdata/library/music/&lt;br /&gt;
&lt;br /&gt;
Let&#039;s call it Custom_Genre_Country.xml&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
 &amp;lt;node order=&amp;quot;10&amp;quot; type=&amp;quot;filter&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;(Custom) Genre Country&amp;lt;/label&amp;gt;&lt;br /&gt;
  &amp;lt;content&amp;gt;artists&amp;lt;/content&amp;gt;&lt;br /&gt;
   &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;genre&amp;quot; operator=&amp;quot;is&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;Country&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
 &amp;lt;/node&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As you can see as well as changing the order, we have a few more xml tags this time:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Type&#039;&#039;&#039; = Can be folder or filter, folder requires path to be set.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Match&#039;&#039;&#039; = Specifies how many rules should match. In this case we are matching all rules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rule&#039;&#039;&#039; = Any rule created with the smart playlist editor. (See [[Smart playlists]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limit&#039;&#039;&#039; = Limit the number of results returned (can be excluded altogether for unlimited)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Custommusicnodecountry.png|500px|Custom node in action]]&lt;br /&gt;
&lt;br /&gt;
So there you have it, a simple genre filter for country music.&lt;br /&gt;
&lt;br /&gt;
There are many other rules you can apply, a simple way to find them is to have a go with the smart playlist editor and copy the rule from the resulting xml playlist. There are many possibilities, you could create a rule for any of the database fields such as genre or year, use paths or combine rules together. &lt;br /&gt;
&lt;br /&gt;
A more advanced idea would be a node structure so you could browse your albums by the first letter like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Atoznodes.jpg|500px|A more advanced custom node]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Custom home items]]&lt;br /&gt;
* [[Smart playlists]]&lt;br /&gt;
* [[Video nodes]]&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
{{Top}}&lt;br /&gt;
&lt;br /&gt;
{{Isengard updated}}&lt;br /&gt;
[[Category:Music library|Nodes]]&lt;br /&gt;
[[Category:Manual]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Radio_button_control&amp;diff=241882</id>
		<title>Radio button control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Radio_button_control&amp;diff=241882"/>
		<updated>2022-04-14T00:52:18Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The radio button control is used for creating push button on/off settings in Kodi. You can choose the position, size, and look of the button. When the user clicks on the radio button, the state will change, toggling the extra textures (textureradioon and textureradiooff). Used for settings controls.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;radiobutton&amp;quot; id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;My first radiobutton control&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;radiobutton&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
      &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
      &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
      &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
      &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
      &amp;lt;colordiffuse&amp;gt;FFFFFFFF&amp;lt;/colordiffuse&amp;gt;&lt;br /&gt;
      &amp;lt;texturefocus&amp;gt;myfocustexture.png&amp;lt;/texturefocus&amp;gt;&lt;br /&gt;
      &amp;lt;texturenofocus&amp;gt;mynormaltexture.png&amp;lt;/texturenofocus&amp;gt;&lt;br /&gt;
      &amp;lt;textureradioonfocus colordiffuse=&amp;quot;FFFFAAFF&amp;quot;&amp;gt;myradiobutton.png&amp;lt;/textureradioonfocus&amp;gt;&lt;br /&gt;
      &amp;lt;textureradioonnofocus colordiffuse=&amp;quot;FFFFAAFF&amp;quot;&amp;gt;myradiobutton.png&amp;lt;/textureradioonnofocus&amp;gt;&lt;br /&gt;
      &amp;lt;textureradioofffocus colordiffuse=&amp;quot;FFFFAAFF&amp;quot;&amp;gt;myradiobutton_nf.png&amp;lt;/textureradioofffocus&amp;gt;&lt;br /&gt;
      &amp;lt;textureradiooffnofocus colordiffuse=&amp;quot;FFFFAAFF&amp;quot;&amp;gt;myradiobutton_nf.png&amp;lt;/textureradiooffnofocus&amp;gt;&lt;br /&gt;
      &amp;lt;selected&amp;gt;Player.Paused&amp;lt;/selected&amp;gt;&lt;br /&gt;
      &amp;lt;onclick&amp;gt;PlayerControls(Pause)&amp;lt;/onclick&amp;gt;&lt;br /&gt;
      &amp;lt;label&amp;gt;29&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;font&amp;gt;font12&amp;lt;/font&amp;gt;&lt;br /&gt;
      &amp;lt;textcolor&amp;gt;FFFFFFFF&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
      &amp;lt;focusedcolor&amp;gt;FFFFFFFF&amp;lt;/focusedcolor&amp;gt;&lt;br /&gt;
      &amp;lt;disabledcolor&amp;gt;80FFFFFF&amp;lt;/disabledcolor&amp;gt;&lt;br /&gt;
      &amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
      &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsetx&amp;gt;4&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsety&amp;gt;5&amp;lt;/textoffsety&amp;gt;&lt;br /&gt;
      &amp;lt;pulseonselect&amp;gt;false&amp;lt;/pulseonselect&amp;gt;&lt;br /&gt;
      &amp;lt;onfocus&amp;gt;&amp;lt;/onfocus&amp;gt;&lt;br /&gt;
      &amp;lt;onunfocus&amp;gt;&amp;lt;/onunfocus&amp;gt;&lt;br /&gt;
      &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
      &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
      &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
      &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default_control_tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturefocus&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the image file which should be displayed when the button has focus. [[Texture Attributes|See here for additional information about textures.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturenofocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed when the button does not have focus.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradioonfocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the radio button portion when it&#039;s the button is on and focused. This texture is positioned on the right of the button – it&#039;s positioned 24 pixels from the right edge of the button, and 8 pixels above the center vertically.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradioonnofocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the radio button portion when it&#039;s the button is on and unfocused. This texture is positioned on the right of the button – it&#039;s positioned 24 pixels from the right edge of the button, and 8 pixels above the center vertically.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradioon&#039;&#039;&#039;&lt;br /&gt;
|  A shortcut to set both of the above textures to the same image file.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradioondisabled&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the radio button portion when the button is on and disabled.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradioofffocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the radio button portion when the button is off and focused.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradiooffnofocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the radio button portion when the button is off and unfocused.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradiooff&#039;&#039;&#039;&lt;br /&gt;
|  A shortcut to set both of the above textures to the same image file.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureradioondisabled&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the radio button portion when the button is off and disabled.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
|  The label used on the button. It can be a link into strings.po, or an actual text label.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label2&#039;&#039;&#039;&lt;br /&gt;
|  Optional. Will display an &#039;on&#039; or &#039;off&#039; label. Only available if you specify an empty radiowidth and radioheight.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
|  Font used for the button label. From fonts.xml.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
|  Color used for displaying the button label. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-  &lt;br /&gt;
|  &#039;&#039;&#039;focusedcolor&#039;&#039;&#039;&lt;br /&gt;
|  Color used for the button label when the button has in focus. In AARRGGBB hex format or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;disabledcolor&#039;&#039;&#039;&lt;br /&gt;
|  Color used for the button label if the button is disabled.  In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;align&#039;&#039;&#039;&lt;br /&gt;
|  Label horizontal alignment on the button. Defaults to left, can also be center or right.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;aligny&#039;&#039;&#039;&lt;br /&gt;
|  Label vertical alignment on the button. Defaults to top, can also be center.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
|  Amount to offset the label from the left (or right) edge of the button when using left or right alignment.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsety&#039;&#039;&#039;&lt;br /&gt;
|  Amount to offset the label from the top edge of the button when using top alignment.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textwidth&#039;&#039;&#039;&lt;br /&gt;
| Will truncate any text that&#039;s too long.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;selected&#039;&#039;&#039;&lt;br /&gt;
|  The boolean condition that when met will cause the control to become selected. [[Conditional_visibility|see here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;onclick&#039;&#039;&#039;&lt;br /&gt;
|  The function to perform when the radio button is clicked. Should be a [[Built-in_scripting|built in function.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;radioposx&#039;&#039;&#039;&lt;br /&gt;
|  X offset of the &#039;&#039;dot&#039;&#039; or radio button itself&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;radioposy&#039;&#039;&#039;&lt;br /&gt;
|  Y offset of the &#039;&#039;dot&#039;&#039; or radio button itself&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;radiowidth&#039;&#039;&#039;&lt;br /&gt;
|  Width in Pixels of the &#039;&#039;dot&#039;&#039; or radio button itself&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;radioheight&#039;&#039;&#039;&lt;br /&gt;
|  Height in Pixels of the &#039;&#039;dot&#039;&#039; or radio button itself&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onfocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the action to perform when the button is focused. Should be a built in function. The action is performed after any focus animations have completed. [[List_of_built-in_functions|See here for more information.]]&lt;br /&gt;
|-  &lt;br /&gt;
|   &#039;&#039;&#039;onunfocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the action to perform when the button loses focus. Should be a built in function.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Fixed_List_Container&amp;diff=241881</id>
		<title>Fixed List Container</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Fixed_List_Container&amp;diff=241881"/>
		<updated>2022-04-14T00:52:01Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Fixed List Container&#039;&#039;&#039; is one of several containers used to display items from file lists in a certain way. It is identical to the [[List Container]] with one exception: the focus area has a fixed position, while the list appears to move beneath it in response to directional input. Thus, moving up or down scrolls the items, not the focused position. As with all container controls, the [[Container Item Layout|layout]] of the items within the control is very flexible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;control type=&amp;quot;fixedlist&amp;quot; id=&amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;description&amp;gt;My first fixed list container&amp;lt;/description&amp;gt;&lt;br /&gt;
          &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
          &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
          &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
          &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
          &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
          &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
          &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
          &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
          &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
          &amp;lt;viewtype label=&amp;quot;3D list&amp;quot;&amp;gt;list&amp;lt;/viewtype&amp;gt;&lt;br /&gt;
          &amp;lt;orientation&amp;gt;vertical&amp;lt;/orientation&amp;gt;&lt;br /&gt;
          &amp;lt;pagecontrol&amp;gt;25&amp;lt;/pagecontrol&amp;gt;&lt;br /&gt;
          &amp;lt;scrolltime tween=&amp;quot;sine&amp;quot; easing=&amp;quot;out&amp;quot;&amp;gt;200&amp;lt;/scrolltime&amp;gt;&lt;br /&gt;
          &amp;lt;autoscroll&amp;gt;true&amp;lt;/autoscroll&amp;gt;&lt;br /&gt;
          &amp;lt;focusposition&amp;gt;4&amp;lt;/focusposition&amp;gt;&lt;br /&gt;
          &amp;lt;movement&amp;gt;6&amp;lt;/movement&amp;gt;&lt;br /&gt;
          &amp;lt;itemlayout width=&amp;quot;650&amp;quot; height=&amp;quot;29&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;left&amp;gt;5&amp;lt;/left&amp;gt;&lt;br /&gt;
                            &amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
                            &amp;lt;width&amp;gt;22&amp;lt;/width&amp;gt;&lt;br /&gt;
                            &amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
                            &amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
                    &amp;lt;/control&amp;gt;&lt;br /&gt;
                    &amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;left&amp;gt;30&amp;lt;/left&amp;gt;&lt;br /&gt;
                            &amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
                            &amp;lt;width&amp;gt;430&amp;lt;/width&amp;gt;&lt;br /&gt;
                            &amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
                            &amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
                            &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
                            &amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
                            &amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
                            &amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;/control&amp;gt;&lt;br /&gt;
                    &amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;left&amp;gt;475&amp;lt;/left&amp;gt;&lt;br /&gt;
                            &amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
                            &amp;lt;width&amp;gt;300&amp;lt;/width&amp;gt;&lt;br /&gt;
                            &amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
                            &amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
                            &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
                            &amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
                            &amp;lt;textcolor&amp;gt;grey&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
                            &amp;lt;align&amp;gt;right&amp;lt;/align&amp;gt;&lt;br /&gt;
                            &amp;lt;label&amp;gt;$INFO[ListItem.Label2]&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;/control&amp;gt;&lt;br /&gt;
          &amp;lt;/itemlayout&amp;gt;&lt;br /&gt;
          &amp;lt;focusedlayout height=&amp;quot;29&amp;quot; width=&amp;quot;650&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;width&amp;gt;485&amp;lt;/width&amp;gt;&lt;br /&gt;
                            &amp;lt;height&amp;gt;29&amp;lt;/height&amp;gt;&lt;br /&gt;
                            &amp;lt;left&amp;gt;0&amp;lt;/left&amp;gt;&lt;br /&gt;
                            &amp;lt;top&amp;gt;0&amp;lt;/top&amp;gt;&lt;br /&gt;
                            &amp;lt;visible&amp;gt;Control.HasFocus(50)&amp;lt;/visible&amp;gt;&lt;br /&gt;
                            &amp;lt;texture&amp;gt;list-focus.png&amp;lt;/texture&amp;gt;&lt;br /&gt;
                    &amp;lt;/control&amp;gt;&lt;br /&gt;
                    &amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;left&amp;gt;5&amp;lt;/left&amp;gt;&lt;br /&gt;
                            &amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
                            &amp;lt;width&amp;gt;22&amp;lt;/width&amp;gt;&lt;br /&gt;
                            &amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
                            &amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
                    &amp;lt;/control&amp;gt;&lt;br /&gt;
                    &amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;left&amp;gt;30&amp;lt;/left&amp;gt;&lt;br /&gt;
                            &amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
                            &amp;lt;width&amp;gt;430&amp;lt;/width&amp;gt;&lt;br /&gt;
                            &amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
                            &amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
                            &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
                            &amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
                            &amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
                            &amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;/control&amp;gt;&lt;br /&gt;
                    &amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
                            &amp;lt;left&amp;gt;475&amp;lt;/left&amp;gt;&lt;br /&gt;
                            &amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
                            &amp;lt;width&amp;gt;300&amp;lt;/width&amp;gt;&lt;br /&gt;
                            &amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
                            &amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
                            &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
                            &amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
                            &amp;lt;textcolor&amp;gt;grey&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
                            &amp;lt;align&amp;gt;right&amp;lt;/align&amp;gt;&lt;br /&gt;
                            &amp;lt;label&amp;gt;$INFO[ListItem.Label2]&amp;lt;/label&amp;gt;&lt;br /&gt;
                    &amp;lt;/control&amp;gt;&lt;br /&gt;
          &amp;lt;/focusedlayout&amp;gt;&lt;br /&gt;
    &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[default control tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important as this file is written in XML, a language where tag names are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
 ! Tag !! Description&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;viewtype&#039;&#039;&#039;&lt;br /&gt;
 | The type of view, valid values are: &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wide&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wrap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;biglist&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bigicon&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bigwide&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bigwrap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;biginfo&amp;lt;/code&amp;gt;. The label attribute indicates the label that will be used in the &amp;quot;View As&amp;quot; control within the GUI. It is localizable via strings.po. &#039;&#039;viewtype&#039;&#039; has no effect on the view itself. It is used by Kodi when switching skins to automatically select a view with a similar layout. Skinners should try to set &#039;&#039;viewtype&#039;&#039; to describe the layout as best as possible.&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;orientation&#039;&#039;&#039;&lt;br /&gt;
 | The orientation of the list, defaults to vertical.&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;pagecontrol&#039;&#039;&#039;&lt;br /&gt;
 | Used to set the &amp;lt;id&amp;gt; of the page control used to control this list.&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;scrolltime&#039;&#039;&#039;&lt;br /&gt;
 | The time (in milliseconds) to scroll from one item to another, defaults to 200ms. The list will scroll smoothly from one item to another as needed, or setting it to zero to disables the smooth scrolling effect. The scroll movement can be further adjusted by selecting one of the available [[Tweeners|tween]] methods.&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;focusposition&#039;&#039;&#039;&lt;br /&gt;
 | Specifies the focus position (from 0 -&amp;gt; number of displayable items - 1). The focused position doesn&#039;t change—instead, the items move up or down (or left and right) through the focus area.&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;movement&#039;&#039;&#039;&lt;br /&gt;
 | This will make the focused position scroll again at the end of the list. (ie. &amp;lt;movement&amp;gt;6&amp;lt;/movement&amp;gt; if there are only 6 items below the focus, the focus moves down to the bottom)&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;itemlayout&#039;&#039;&#039;&lt;br /&gt;
 | Specifies the layout of items in the list and requires the height attribute to be set in a vertical list, or the width attribute set for a horizontal one. The &amp;lt;itemlayout&amp;gt; then contains as many label and image controls as required.&amp;lt;br /&amp;gt;&#039;&#039;See: &#039;&#039;&#039;[[Container Item Layout]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;focusedlayout&#039;&#039;&#039;&lt;br /&gt;
 | Specifies the layout of items in the list that have focus and requires the height attribute to be set in a vertical list, or the width attribute set for a horizontal one. The &amp;lt;focusedlayout&amp;gt; then contains as many label and image controls as required.&amp;lt;br /&amp;gt;&#039;&#039;See: &#039;&#039;&#039;[[Container Item Layout]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;content&#039;&#039;&#039;&lt;br /&gt;
 | Used to set the item content that this list will contain, allowing the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the &amp;lt;code&amp;gt;grouplist&amp;lt;/code&amp;gt; control.&amp;lt;br /&amp;gt;&#039;&#039;See: &#039;&#039;&#039;[[Static List Content]]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;preloaditems&#039;&#039;&#039;&lt;br /&gt;
 | Used in association with the [[Archive:Background Image Loader|Background Image Loader]].&lt;br /&gt;
 |-&lt;br /&gt;
 | &#039;&#039;&#039;autoscroll&#039;&#039;&#039;&lt;br /&gt;
 | Used to make the container scroll automatically&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Settings_Spin_Control&amp;diff=241880</id>
		<title>Settings Spin Control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Settings_Spin_Control&amp;diff=241880"/>
		<updated>2022-04-14T00:51:48Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The settings spin control is used in the settings screens for when a list of options can be chosen from using up/down arrows. You can choose the position, size, and look of the spin control. It is basically a cross between the button control and a spin control. It has a label and focus and non focus textures, as well as a spin control on the right.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;spincontrolex&amp;quot; id=&amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;My first settings spin control&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
      &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
      &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
      &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
      &amp;lt;spinposx&amp;gt;220&amp;lt;/spinposx&amp;gt;&lt;br /&gt;
      &amp;lt;spinposy&amp;gt;180&amp;lt;/spinposy&amp;gt;&lt;br /&gt;
      &amp;lt;spinwidth&amp;gt;16&amp;lt;/spinwidth&amp;gt;&lt;br /&gt;
      &amp;lt;spinheight&amp;gt;16&amp;lt;/spinheight&amp;gt;&lt;br /&gt;
      &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
      &amp;lt;colordiffuse&amp;gt;FFFFFFFF&amp;lt;/colordiffuse&amp;gt;&lt;br /&gt;
      &amp;lt;texturefocus&amp;gt;myfocustexture.png&amp;lt;/texturefocus&amp;gt;&lt;br /&gt;
      &amp;lt;texturenofocus&amp;gt;mynofocustexture.png&amp;lt;/texturenofocus&amp;gt;&lt;br /&gt;
      &amp;lt;textureup&amp;gt;myuptexture.png&amp;lt;/textureup&amp;gt;&lt;br /&gt;
      &amp;lt;textureupfocus&amp;gt;myupfocustexture.png&amp;lt;/textureupfocus&amp;gt;&lt;br /&gt;
      &amp;lt;texturedown&amp;gt;mydowntexture.png&amp;lt;/texturedown&amp;gt;&lt;br /&gt;
      &amp;lt;texturedownfocus&amp;gt;mydownfocustexture.png&amp;lt;/texturedownfocus&amp;gt;&lt;br /&gt;
      &amp;lt;textureupdisabled colordiffuse=&amp;quot;AAFFAAFF&amp;quot;&amp;gt;mydowntexture.png&amp;lt;/textureupdisabled&amp;gt;&lt;br /&gt;
      &amp;lt;texturedowndisabled colordiffuse=&amp;quot;AAFFAAFF&amp;quot;&amp;gt;mydownfocustexture.png&amp;lt;/texturedowndisabled&amp;gt;&lt;br /&gt;
      &amp;lt;label&amp;gt;46&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;font&amp;gt;font12&amp;lt;/font&amp;gt;&lt;br /&gt;
      &amp;lt;textcolor&amp;gt;FFFFFFFF&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
      &amp;lt;disabledcolor&amp;gt;80FFFFFF&amp;lt;/disabledcolor&amp;gt;&lt;br /&gt;
      &amp;lt;align&amp;gt;&amp;lt;/align&amp;gt;&lt;br /&gt;
      &amp;lt;aligny&amp;gt;&amp;lt;/aligny&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsetx&amp;gt;&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsety&amp;gt;&amp;lt;/textoffsety&amp;gt;&lt;br /&gt;
      &amp;lt;pulseonselect&amp;gt;&amp;lt;/pulseonselect&amp;gt;&lt;br /&gt;
      &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
      &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
      &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
      &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;spinposx&#039;&#039;&#039;&lt;br /&gt;
|  The horizontal position of the spin control for multipage lists. This is offset from the top left of the list.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;spinposy&#039;&#039;&#039;&lt;br /&gt;
|  The vertical position of the spin control for multipage lists. This is offset from the top left of the list.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;spinwidth&#039;&#039;&#039;&lt;br /&gt;
|  The width of one of the spin control buttons. The textures for this spin control will be scaled to fit this width.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;spinheight&#039;&#039;&#039;&lt;br /&gt;
|  The height of one of the spin control buttons. The textures for this spin control will be scaled to fit this height.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturefocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the image file which should be displayed for the control when it has focus. [[Texture Attributes|See here for additional information about textures.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturenofocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the control when it doesn&#039;t focus.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureup&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the up arrow when it doesn&#039;t have focus. It is displayed to the left of the down arrow.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureupfocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the up arrow when it has focus.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureupdisabled&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the up arrow when the button is disabled.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturedown&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the down arrow when it is not focused. It is displayed to the right of the up arrow so that it&#039;s right edge is &amp;lt;textoffsetx&amp;gt; pixels away from the right edge of the control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturedownfocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the down arrow when it has focus.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturedowndisabled&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the up arrow when the button is disabled.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
|  Either a numeric reference into strings.po (for localization), or a string that will be shown on the left of the control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
|  Font used for the controls label. From fonts.xml.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
|  Color used for displaying the label. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;disabledcolor&#039;&#039;&#039;&lt;br /&gt;
|  Color used for the label if the control is disabled. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the color of the drop shadow on the text. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;align&#039;&#039;&#039;&lt;br /&gt;
|  Label horizontal alignment on the control. Defaults to left.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;aligny&#039;&#039;&#039;&lt;br /&gt;
|  Label vertical alignment on the control. Defaults to top, can also be center.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
|  Amount to offset the label from the left (or right) edge of the button when using left or right alignment.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsety&#039;&#039;&#039;&lt;br /&gt;
|  Amount to offset the label from the top edge of the button when using top alignment.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textwidth&#039;&#039;&#039;&lt;br /&gt;
| Will truncate any text that&#039;s too long.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Wrap_List_Container&amp;diff=241879</id>
		<title>Wrap List Container</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Wrap_List_Container&amp;diff=241879"/>
		<updated>2022-04-14T00:51:34Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The wrap list container is one of several containers used to display items from file lists in various ways. The wrap list container is the same as the [[List Container]], with two exceptions:&lt;br /&gt;
&lt;br /&gt;
# The focused item is fixed.&lt;br /&gt;
# The items &amp;quot;wrap&amp;quot; around once they reach the end.&lt;br /&gt;
&lt;br /&gt;
As with all container controls, the layout of the items within the control is very flexible.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;wraplist&amp;quot; id=&amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;My first wraplist container&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
      &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
      &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
      &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
      &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
      &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
      &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
      &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
      &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
      &amp;lt;viewtype label=&amp;quot;3D list&amp;quot;&amp;gt;list&amp;lt;/viewtype&amp;gt;&lt;br /&gt;
      &amp;lt;orientation&amp;gt;vertical&amp;lt;/orientation&amp;gt;&lt;br /&gt;
      &amp;lt;pagecontrol&amp;gt;25&amp;lt;/pagecontrol&amp;gt;&lt;br /&gt;
      &amp;lt;focusposition&amp;gt;3&amp;lt;/focusposition&amp;gt;&lt;br /&gt;
      &amp;lt;scrolltime tween=&amp;quot;sine&amp;quot; easing=&amp;quot;out&amp;quot;&amp;gt;200&amp;lt;/scrolltime&amp;gt;&lt;br /&gt;
      &amp;lt;autoscroll&amp;gt;true&amp;lt;/autoscroll&amp;gt;&lt;br /&gt;
      &amp;lt;itemlayout width=&amp;quot;650&amp;quot; height=&amp;quot;29&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;5&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;22&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;30&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;430&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;475&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;300&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;textcolor&amp;gt;grey&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;right&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label2]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
      &amp;lt;/itemlayout&amp;gt;&lt;br /&gt;
      &amp;lt;focusedlayout height=&amp;quot;29&amp;quot; width=&amp;quot;650&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;485&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;29&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;0&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;0&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;visible&amp;gt;Control.HasFocus(50)&amp;lt;/visible&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;list-focus.png&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;5&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;22&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;30&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;430&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;475&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;300&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;textcolor&amp;gt;grey&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;right&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label2]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
      &amp;lt;/focusedlayout&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;viewtype&#039;&#039;&#039;&lt;br /&gt;
|  The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide, bigwrap, info and biginfo. The label attribute indicates the label that will be used in the &amp;quot;View As&amp;quot; control within the GUI. It is localizable via strings.po. &#039;&#039;viewtype&#039;&#039; has no effect on the view itself. It is used by kodi when switching skin to automatically select a view with a similar layout. Skinners should try to set &#039;&#039;viewtype&#039;&#039; to describe the layout as best as possible. &lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;orientation&#039;&#039;&#039;&lt;br /&gt;
|  The orientation of the list. Defaults to vertical.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;pagecontrol&#039;&#039;&#039;&lt;br /&gt;
|  Used to set the &amp;lt;id&amp;gt; of the page control used to control this list.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrolltime&#039;&#039;&#039;&lt;br /&gt;
|  The time (in ms) to scroll from one item to another.  By default, this is 200ms.  The list will scroll smoothly from one item to another as needed. Set it to zero to disable the smooth scrolling. The scroll movement can be further adjusted by selecting one of the available [[Tweeners|tween]] methods.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;focusposition&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the index (from 0 -&amp;gt; number items displayable - 1) of the focused item.  The focused item doesn&#039;t move - as the user moves up and down (or left and right) the items scroll instead.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;itemlayout&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the layout of items in the list. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The &amp;lt;itemlayout&amp;gt; then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;focusedlayout&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the layout of items in the list that have focus. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The &amp;lt;focusedlayout&amp;gt; then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;content&#039;&#039;&#039;&lt;br /&gt;
|  Used to set the item content that this list will contain. Allows the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the grouplist control. [[Static List Content|See here for more information]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;autoscroll&#039;&#039;&#039;&lt;br /&gt;
|  Used to make the container scroll automatically&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=List_Container&amp;diff=241878</id>
		<title>List Container</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=List_Container&amp;diff=241878"/>
		<updated>2022-04-14T00:51:22Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The list container is one of several containers used to display items from file lists in various ways. The list container is very flexible - it&#039;s only restriction is that it is a list - i.e. a single column or row of items. The layout of the items is very flexible and is up to the skinner.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;list&amp;quot; id=&amp;quot;50&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;My first list container&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
      &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
      &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
      &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
      &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
      &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
      &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
      &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
      &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
      &amp;lt;viewtype label=&amp;quot;3D list&amp;quot;&amp;gt;list&amp;lt;/viewtype&amp;gt;&lt;br /&gt;
      &amp;lt;orientation&amp;gt;vertical&amp;lt;/orientation&amp;gt;&lt;br /&gt;
      &amp;lt;pagecontrol&amp;gt;25&amp;lt;/pagecontrol&amp;gt;&lt;br /&gt;
      &amp;lt;autoscroll&amp;gt;true&amp;lt;/autoscroll&amp;gt;&lt;br /&gt;
      &amp;lt;scrolltime tween=&amp;quot;sine&amp;quot; easing=&amp;quot;out&amp;quot;&amp;gt;200&amp;lt;/scrolltime&amp;gt;&lt;br /&gt;
      &amp;lt;itemlayout width=&amp;quot;650&amp;quot; height=&amp;quot;29&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;5&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;22&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;30&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;430&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;475&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;300&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;textcolor&amp;gt;grey&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;right&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label2]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
      &amp;lt;/itemlayout&amp;gt;&lt;br /&gt;
      &amp;lt;focusedlayout height=&amp;quot;29&amp;quot; width=&amp;quot;650&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;485&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;29&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;0&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;0&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;visible&amp;gt;Control.HasFocus(50)&amp;lt;/visible&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;list-focus.png&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;5&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;22&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;30&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;430&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;475&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;3&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;300&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;textcolor&amp;gt;grey&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;right&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label2]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
      &amp;lt;/focusedlayout&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;viewtype&#039;&#039;&#039;&lt;br /&gt;
|  The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide, bigwrap, info and biginfo. The label attribute indicates the label that will be used in the &amp;quot;View As&amp;quot; control within the GUI. It is localizable via strings.po. &#039;&#039;viewtype&#039;&#039; has no effect on the view itself. It is used by kodi when switching skin to automatically select a view with a similar layout. Skinners should try to set &#039;&#039;viewtype&#039;&#039; to describe the layout as best as possible. &lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;orientation&#039;&#039;&#039;&lt;br /&gt;
|  The orientation of the list. Defaults to vertical.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;pagecontrol&#039;&#039;&#039;&lt;br /&gt;
|  Used to set the &amp;lt;id&amp;gt; of the page control used to control this list.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrolltime&#039;&#039;&#039;&lt;br /&gt;
|  The time (in ms) to scroll from one item to another.  By default, this is 200ms.  The list will scroll smoothly from one item to another as needed. Set it to zero to disable the smooth scrolling. The scroll movement can be further adjusted by selecting one of the available [[Tweeners|tween]] methods.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;itemlayout&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the layout of items in the list. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The &amp;lt;itemlayout&amp;gt; then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;focusedlayout&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the layout of items in the list that have focus. Requires the height attribute set in a vertical list, and the width attribute set for a horizontal list. The &amp;lt;focusedlayout&amp;gt; then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;content&#039;&#039;&#039;&lt;br /&gt;
|  Used to set the item content that this list will contain. Allows the skinner to setup a list anywhere they want with a static set of content, as a useful alternative to the grouplist control. [[Static List Content|See here for more information]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;preloaditems&#039;&#039;&#039;&lt;br /&gt;
|  Used in association with the [[Archive:Background Image Loader|Background Image Loader]].&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;autoscroll&#039;&#039;&#039;&lt;br /&gt;
|  Used to make the container scroll automatically&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Panel_Container&amp;diff=241877</id>
		<title>Panel Container</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Panel_Container&amp;diff=241877"/>
		<updated>2022-04-14T00:51:11Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The panel container is one of several containers used to display items from file lists in various ways. The panel container is very flexible - it&#039;s essentially a multi-column list. The layout of the items is very flexible and is up to the skinner.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;panel&amp;quot; id=&amp;quot;52&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;left&amp;gt;190&amp;lt;/left&amp;gt;&lt;br /&gt;
	&amp;lt;top&amp;gt;100&amp;lt;/top&amp;gt;&lt;br /&gt;
	&amp;lt;width&amp;gt;485&amp;lt;/width&amp;gt;&lt;br /&gt;
	&amp;lt;height&amp;gt;425&amp;lt;/height&amp;gt;&lt;br /&gt;
	&amp;lt;onleft&amp;gt;9000&amp;lt;/onleft&amp;gt;&lt;br /&gt;
	&amp;lt;onright&amp;gt;60&amp;lt;/onright&amp;gt;&lt;br /&gt;
	&amp;lt;onup&amp;gt;52&amp;lt;/onup&amp;gt;&lt;br /&gt;
	&amp;lt;ondown&amp;gt;52&amp;lt;/ondown&amp;gt;&lt;br /&gt;
	&amp;lt;scrolltime tween=&amp;quot;sine&amp;quot; easing=&amp;quot;out&amp;quot;&amp;gt;200&amp;lt;/scrolltime&amp;gt;&lt;br /&gt;
	&amp;lt;autoscroll&amp;gt;true&amp;lt;/autoscroll&amp;gt;&lt;br /&gt;
	&amp;lt;viewtype label=&amp;quot;536&amp;quot;&amp;gt;icon&amp;lt;/viewtype&amp;gt;&lt;br /&gt;
	&amp;lt;pagecontrol&amp;gt;60&amp;lt;/pagecontrol&amp;gt;&lt;br /&gt;
	&amp;lt;include&amp;gt;contentpanelslide&amp;lt;/include&amp;gt;&lt;br /&gt;
	&amp;lt;itemlayout height=&amp;quot;150&amp;quot; width=&amp;quot;120&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;10&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;10&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;100&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;100&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;75&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;32&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;32&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Overlay]&amp;lt;/texture&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;0&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;115&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;110&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;center&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
	&amp;lt;/itemlayout&amp;gt;&lt;br /&gt;
	&amp;lt;focusedlayout height=&amp;quot;150&amp;quot; width=&amp;quot;120&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;110&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;110&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;5&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;5&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;folder-focus.png&amp;lt;/texture&amp;gt;&lt;br /&gt;
			&amp;lt;animation effect=&amp;quot;zoom&amp;quot; end=&amp;quot;0,0,120,120&amp;quot; time=&amp;quot;100&amp;quot;&amp;gt;focus&amp;lt;/animation&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;10&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;10&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;100&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;100&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Icon]&amp;lt;/texture&amp;gt;&lt;br /&gt;
			&amp;lt;animation effect=&amp;quot;zoom&amp;quot; end=&amp;quot;5,5,110,110&amp;quot; time=&amp;quot;100&amp;quot;&amp;gt;focus&amp;lt;/animation&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;image&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;75&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;32&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;32&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;texture&amp;gt;$INFO[ListItem.Overlay]&amp;lt;/texture&amp;gt;&lt;br /&gt;
			&amp;lt;animation effect=&amp;quot;slide&amp;quot; end=&amp;quot;5,5&amp;quot; time=&amp;quot;100&amp;quot;&amp;gt;focus&amp;lt;/animation&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
		&amp;lt;control type=&amp;quot;label&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;left&amp;gt;0&amp;lt;/left&amp;gt;&lt;br /&gt;
			&amp;lt;top&amp;gt;120&amp;lt;/top&amp;gt;&lt;br /&gt;
			&amp;lt;width&amp;gt;110&amp;lt;/width&amp;gt;&lt;br /&gt;
			&amp;lt;height&amp;gt;22&amp;lt;/height&amp;gt;&lt;br /&gt;
			&amp;lt;font&amp;gt;font13&amp;lt;/font&amp;gt;&lt;br /&gt;
			&amp;lt;selectedcolor&amp;gt;green&amp;lt;/selectedcolor&amp;gt;&lt;br /&gt;
			&amp;lt;align&amp;gt;center&amp;lt;/align&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;$INFO[ListItem.Label]&amp;lt;/label&amp;gt;&lt;br /&gt;
		&amp;lt;/control&amp;gt;&lt;br /&gt;
	&amp;lt;/focusedlayout&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;viewtype&#039;&#039;&#039;&lt;br /&gt;
|  The type of view. Choices are list, icon, wide, wrap, biglist, bigicon, bigwide, bigwrap, info and biginfo. The label attribute indicates the label that will be used in the &amp;quot;View As&amp;quot; control within the GUI. It is localizable via strings.po. &#039;&#039;viewtype&#039;&#039; has no effect on the view itself. It is used by kodi when switching skin to automatically select a view with a similar layout. Skinners should try to set &#039;&#039;viewtype&#039;&#039; to describe the layout as best as possible. &lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;orientation&#039;&#039;&#039;&lt;br /&gt;
|  The orientation of the panel. Defaults to vertical.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;pagecontrol&#039;&#039;&#039;&lt;br /&gt;
|  Used to set the &amp;lt;id&amp;gt; of the page control used to control this panel.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrolltime&#039;&#039;&#039;&lt;br /&gt;
|  The time (in ms) to scroll from one item to another.  By default, this is 200ms.  The panel will scroll smoothly from one item to another as needed. Set it to zero to disable the smooth scrolling. The scroll movement can be further adjusted by selecting one of the available [[Tweeners|tween]] methods.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;itemlayout&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the layout of items in the list. Requires both width and height attributes set. The &amp;lt;itemlayout&amp;gt; then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;focusedlayout&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the layout of items in the list that have focus. Requires both width and height attributes set. The &amp;lt;focusedlayout&amp;gt; then contains as many label and image controls as required. [[Container Item Layout|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;content&#039;&#039;&#039;&lt;br /&gt;
|  Used to set the item content that this panel will contain. Allows the skinner to setup a panel anywhere they want with a static set of content, as a useful alternative to the grouplist control. [[Static List Content|See here for more information]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;preloaditems&#039;&#039;&#039;&lt;br /&gt;
|  Used in association with the background image loader. [[Background Image Loader|See here for more information]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;autoscroll&#039;&#039;&#039;&lt;br /&gt;
|  Used to make the container scroll automatically&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Button_control&amp;diff=241876</id>
		<title>Button control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Button_control&amp;diff=241876"/>
		<updated>2022-04-14T00:50:44Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The button control is used for creating push buttons in {{kodi}}. You can choose the position, size, and look of the button, as well as choosing what action(s) should be performed when pushed.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;button&amp;quot; id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;My first button control&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
      &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
      &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
      &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
      &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
      &amp;lt;colordiffuse&amp;gt;FFFFFFFF&amp;lt;/colordiffuse&amp;gt;&lt;br /&gt;
      &amp;lt;texturefocus colordiffuse=&amp;quot;FFFFAAFF&amp;quot;&amp;gt;myfocustexture.png&amp;lt;/texturefocus&amp;gt;&lt;br /&gt;
      &amp;lt;texturenofocus colordiffuse=&amp;quot;FFFFAAFF&amp;quot;&amp;gt;mynormaltexture.png&amp;lt;/texturenofocus&amp;gt;&lt;br /&gt;
      &amp;lt;label&amp;gt;29&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;wrapmultiline&amp;gt;true&amp;lt;/wrapmultiline&amp;gt;&lt;br /&gt;
      &amp;lt;font&amp;gt;font12&amp;lt;/font&amp;gt;&lt;br /&gt;
      &amp;lt;textcolor&amp;gt;FFFFFFFF&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
      &amp;lt;focusedcolor&amp;gt;FFFFFFFF&amp;lt;/focusedcolor&amp;gt;&lt;br /&gt;
      &amp;lt;disabledcolor&amp;gt;80FFFFFF&amp;lt;/disabledcolor&amp;gt;&lt;br /&gt;
      &amp;lt;invalidcolor&amp;gt;FFFFFFFF&amp;lt;/invalidcolor&amp;gt;&lt;br /&gt;
      &amp;lt;align&amp;gt;&amp;lt;/align&amp;gt;&lt;br /&gt;
      &amp;lt;aligny&amp;gt;&amp;lt;/aligny&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsetx&amp;gt;&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsety&amp;gt;&amp;lt;/textoffsety&amp;gt;&lt;br /&gt;
      &amp;lt;pulseonselect&amp;gt;&amp;lt;/pulseonselect&amp;gt;&lt;br /&gt;
      &amp;lt;onclick&amp;gt;ActivateWindow(MyVideos)&amp;lt;/onclick&amp;gt;&lt;br /&gt;
      &amp;lt;onfocus&amp;gt;&amp;lt;/onfocus&amp;gt;&lt;br /&gt;
      &amp;lt;onunfocus&amp;gt;&amp;lt;/onunfocus&amp;gt;&lt;br /&gt;
      &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
      &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
      &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
      &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default_control_tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;texturefocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the image file which should be displayed when the button has focus. [[Texture Attributes|See here for additional information about textures.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;texturenofocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the image file which should be displayed when the button does not have focus.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
| The label used on the button. It can be a link into strings.po, or an actual text label.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
| Font used for the button label. From fonts.xml.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
| Color used for displaying the button label. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;focusedcolor&#039;&#039;&#039;&lt;br /&gt;
| Color used for the button label when the button has in focus. In AARRGGBB hex format or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;disabledcolor&#039;&#039;&#039;&lt;br /&gt;
| Color used for the button label if the button is disabled. In AARRGGBB hex format or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;invalidcolor&#039;&#039;&#039;&lt;br /&gt;
| Color used for the button if the user entered some invalid value. In AARRGGBB hex format or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
| Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;angle&#039;&#039;&#039;&lt;br /&gt;
| The angle the text should be rendered at, in degrees. A value of 0 is horizontal.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;align&#039;&#039;&#039;&lt;br /&gt;
| Label horizontal alignment on the button. Defaults to left, can also be center or right.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;aligny&#039;&#039;&#039;&lt;br /&gt;
| Label vertical alignment on the button. Defaults to top, can also be center.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
| Amount to offset the label from the left (or right) edge of the button when using left or right alignment.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textoffsety&#039;&#039;&#039;&lt;br /&gt;
| Amount to offset the label from the top edge of the button when using top alignment.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textwidth&#039;&#039;&#039;&lt;br /&gt;
| Will truncate any text that&#039;s too long.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;onclick&#039;&#039;&#039;&lt;br /&gt;
| Specifies the action to perform when the button is pressed. Should be a built in function. [[Built-in_scripting|See here for more information.]] You may have more than one &amp;lt;onclick&amp;gt; tag, and they&#039;ll be executed in sequence.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;onfocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the action to perform when the button is focused. Should be a built in function. The action is performed after any focus animations have completed. [[Built-in_scripting|See here for more information.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;onunfocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the action to perform when the button loses focus. Should be a built in function.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;wrapmultiline&#039;&#039;&#039;&lt;br /&gt;
| Will wrap the label across multiple lines if the label exceeds the control width.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Fade_label_control&amp;diff=241875</id>
		<title>Fade label control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Fade_label_control&amp;diff=241875"/>
		<updated>2022-04-14T00:50:28Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Tag descriptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The fade label control is used for displaying multiple pieces of text in the same space in Kodi. You can choose the font, size, colour, location and contents of the text to be displayed. The first piece of information to display fades in over 50 frames, then scrolls off to the left. Once it is finished scrolling off screen, the second piece of information fades in and the process repeats. A fade label control is not supported in a list container.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;control type=&amp;quot;fadelabel&amp;quot; id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;My First fadelabel&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
        &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
        &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
        &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
        &amp;lt;scrollout&amp;gt;true&amp;lt;/scrollout&amp;gt;&lt;br /&gt;
        &amp;lt;pauseatend&amp;gt;200&amp;lt;/pauseatend&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt;6&amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Genre&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Artist&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Album&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;info&amp;gt;MusicPlayer.Year&amp;lt;/info&amp;gt;&lt;br /&gt;
        &amp;lt;font&amp;gt;font14&amp;lt;/font&amp;gt;&lt;br /&gt;
        &amp;lt;textcolor&amp;gt;FFB2D4F5&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
        &amp;lt;textoffsetx&amp;gt;20&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
        &amp;lt;scroll&amp;gt;true&amp;lt;/scroll&amp;gt;&lt;br /&gt;
        &amp;lt;randomize&amp;gt;true&amp;lt;/randomize&amp;gt;&lt;br /&gt;
  &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tag descriptions ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tags !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the text which should be drawn. You should specify an entry from the strings.po here, however you may also specify a piece of text yourself if you wish, though ofcourse it will not be localisable. [[Label Parsing|You may also specify more than one piece of information here by using the $INFO and $LOCALIZE formats.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;info&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the information that should be presented. Kodi will &amp;lt;span class=&amp;quot;nobr&amp;quot;&amp;gt;auto-fill&amp;lt;/span&amp;gt; in this info in place of the &amp;lt;label&amp;gt;. [[InfoLabels|See here for more information.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the font to use from the font.xml file.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specified the color the text should be, in hex AARRGGBB format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
|  Specify the offset from the left edge that the text should be rendered at when static (not scrolling).  The scrolling text will still scroll using the full &amp;lt;width&amp;gt; of the control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;angle&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the angle at which the text should be drawn, measured counter clockwise from the horizontal.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrollout&#039;&#039;&#039;&lt;br /&gt;
|  If set to False the fadelabel will only scroll until the last char is to the right side of the width of the fadelabel instead of all the way out to the left. Defaults to true&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;pauseatend&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the time that the text will wait until it fades away before it scrolls again or moves to the next item.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;resetonlabelchange&#039;&#039;&#039;&lt;br /&gt;
|  If set to false the fadelabel will not reset the scrolling offset when the label&#039;s content changes. Useful if you have things such as the play time (in seconds) inside a fadelabel. Defaults to true.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scrollspeed&#039;&#039;&#039;&lt;br /&gt;
|  Scroll speed of text in pixels per second. Defaults to 60.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;scroll&#039;&#039;&#039;&lt;br /&gt;
|  If set to false, the labels won&#039;t scroll. Defaults to true.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;randomize&#039;&#039;&#039;&lt;br /&gt;
|  If set to true, the labels will be displayed in a random order. Defaults to false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Settings_Slider_Control&amp;diff=241874</id>
		<title>Settings Slider Control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Settings_Slider_Control&amp;diff=241874"/>
		<updated>2022-04-14T00:50:10Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The settings slider control is used in the settings screens for when an option is best specified on a sliding scale. You can choose the position, size, and look of the slider control. It is basically a cross between the button control and a slider control. It has a label and focus and non focus textures, as well as a slider control on the right.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;sliderex&amp;quot; id=&amp;quot;12&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;My first settings slider control&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;posx&amp;gt;80&amp;lt;/posx&amp;gt;&lt;br /&gt;
      &amp;lt;posy&amp;gt;60&amp;lt;/posy&amp;gt;&lt;br /&gt;
      &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
      &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
      &amp;lt;sliderwidth&amp;gt;100&amp;lt;/sliderwidth&amp;gt;&lt;br /&gt;
      &amp;lt;sliderheight&amp;gt;20&amp;lt;/sliderheight&amp;gt;&lt;br /&gt;
      &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
      &amp;lt;texturefocus&amp;gt;myfocustexture.png&amp;lt;/texturefocus&amp;gt;&lt;br /&gt;
      &amp;lt;texturenofocus&amp;gt;mynofocustexture.png&amp;lt;/texturenofocus&amp;gt;&lt;br /&gt;
      &amp;lt;texturebg&amp;gt;mybackgroundtexture.png&amp;lt;/texturebg&amp;gt;&lt;br /&gt;
      &amp;lt;textureslidernib&amp;gt;mydowntexture.png&amp;lt;/textureslidernib&amp;gt;&lt;br /&gt;
      &amp;lt;textureslidernibfocus&amp;gt;mydownfocustexture.png&amp;lt;/textureslidernibfocus&amp;gt;&lt;br /&gt;
      &amp;lt;info&amp;gt;&amp;lt;/info&amp;gt;&lt;br /&gt;
      &amp;lt;label&amp;gt;46&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;font&amp;gt;font12&amp;lt;/font&amp;gt;&lt;br /&gt;
      &amp;lt;textcolor&amp;gt;FFFFFFFF&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
      &amp;lt;disabledcolor&amp;gt;80FFFFFF&amp;lt;/disabledcolor&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsetx&amp;gt;&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
      &amp;lt;pulseonselect&amp;gt;&amp;lt;/pulseonselect&amp;gt;&lt;br /&gt;
      &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
      &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
      &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
      &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;sliderwidth&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the width of the slider portion of the slider control (ie without the text value, if present). The texture image for the slider background will be resized to fit into this width, and the nib textures will be resized by the same amount.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;sliderheight&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the height of the slider portion of the slider control (ie without the text value, if present). The texture image for the slider background will be resized to fit into this height, and the nib textures will be resized by the same amount.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturefocus&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the image file which should be displayed for the control when it has focus. [[Texture Attributes|See here for additional information about textures.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturenofocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the control when it doesn&#039;t focus.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;texturebg&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed in the background of the slider portion of the control. Will be positioned so that the right edge is &amp;lt;textoffsetx&amp;gt; away from the right edge of the &amp;lt;texturefocus&amp;gt; image, and centered vertically.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureslidernib&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the slider nib.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textureslidernibfocus&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the image file which should be displayed for the slider nib when it has focus.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
|  Either a numeric reference into strings.po (for localization), or a string that will be shown on the left of the control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
|  Font used for the controls label. From fonts.xml.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
|  Color used for displaying the label. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;disabledcolor&#039;&#039;&#039;&lt;br /&gt;
|  Color used for the label if the control is disabled. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the color of the drop shadow on the text. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
|  Amount to offset the label from the left edge of the control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textwidth&#039;&#039;&#039;&lt;br /&gt;
|  Will truncate any text that&#039;s too long.  	&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;info&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the information that the slider controls. [[InfoLabels|See here for more information.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Label_Parsing&amp;diff=241873</id>
		<title>Label Parsing</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Label_Parsing&amp;diff=241873"/>
		<updated>2022-04-14T00:49:55Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* How the parsing works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In label controls, fadelabel controls, built-in functions as well as in the LCD label definition files you can specify more than one piece of information to be displayed in a single line of text (or across multiple lines of text) by using the $INFO, $ESCINFO[] and $LOCALIZE keywords in a &amp;lt;label&amp;gt; tag. In addition to this, you can use the [[Label Formatting]] syntax to specify color and style information for the text (changeable within a single label).&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;A good example of a $INFO[MusicPlayer.Title,song title: , $COMMA and a]$INFO[MusicPlayer.Artist, song artist:]&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;$LOCALIZE[31005]&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;label&amp;gt;The following will be localized from an addons strings - $ADDON[addon.id.here 32001]&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How the parsing works ===&lt;br /&gt;
&lt;br /&gt;
# Kodi runs through and replaces any $LOCALIZE[number] blocks with the real string from strings.po.&lt;br /&gt;
# Kodi then runs through and translates the $INFO[infolabel,prefix,postfix] blocks from left to right.&lt;br /&gt;
# If the Info manager returns an empty string from the infolabel, then nothing is rendered for that block.&lt;br /&gt;
# If the Info manager returns a non-empty string from the infolabel, then Kodi prints the prefix string, then the returned infolabel information, then the postfix string. Note that any $COMMA fields are replaced by real commas, and $$ is replaced by $.&lt;br /&gt;
# Any pieces of information outside of the $INFO blocks are rendered unchanged.&lt;br /&gt;
&lt;br /&gt;
So, in the above example, if nothing is playing then the label will print:&lt;br /&gt;
A good example of a&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
If a song is playing but it has no Title (ie MusicPlayer.Title returns an empty string) but does have an artist, it will return:&lt;br /&gt;
A good example of a song artist: &amp;lt;Artist&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
If a song is playing that has title and artist information, it will return:&lt;br /&gt;
A good example of a song title: &amp;lt;Title&amp;gt;, and a song artist: &amp;lt;Artist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ESCINFO[] should be used when passing an infolabel to a built-in function, when this infolabel is likely to contain commas (,) and/or quotes (&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
eg: PlayMedia($INFO[ListItem.Path]) might return: PlayMedia(/some/path/with_a_file_that_includes,a_comma.avi)&lt;br /&gt;
&lt;br /&gt;
This will be read by the builtin function generator as PlayMedia called with 2 parameters: &amp;quot;/some/path/with_a_file_that_includes&amp;quot; and &amp;quot;a_comma.avi&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you use PlayMedia($ESCINFO[ListItem.Path]) however, it will make sure that whatever is returned by the infolabel is sent on to the builtin as a single parameter.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Toggle_button_control&amp;diff=241872</id>
		<title>Toggle button control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Toggle_button_control&amp;diff=241872"/>
		<updated>2022-04-14T00:49:34Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The toggle button control is used for creating buttons that have 2 states. You can choose the position, size, and look of the button. When the user clicks on the toggle button, the state will change, toggling the extra textures (alttexturefocus and alttexturenofocus). Used for controls where two states are needed (pushed in and pushed out for instance).&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;control type=&amp;quot;togglebutton&amp;quot; id=&amp;quot;25&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;description&amp;gt;My first togglebutton control&amp;lt;/description&amp;gt;&lt;br /&gt;
      &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
      &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
      &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
      &amp;lt;height&amp;gt;200&amp;lt;/height&amp;gt;&lt;br /&gt;
      &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
      &amp;lt;colordiffuse&amp;gt;FFFFFFFF&amp;lt;/colordiffuse&amp;gt;&lt;br /&gt;
      &amp;lt;texturefocus&amp;gt;myfocustexture.png&amp;lt;/texturefocus&amp;gt;&lt;br /&gt;
      &amp;lt;texturenofocus&amp;gt;mynormaltexture.png&amp;lt;/texturenofocus&amp;gt;&lt;br /&gt;
      &amp;lt;alttexturefocus&amp;gt;myselectedTexture.png&amp;lt;/alttexturefocus&amp;gt;&lt;br /&gt;
      &amp;lt;alttexturenofocus&amp;gt;myselectedTexture_nf.png&amp;lt;/alttexturenofocus&amp;gt;&lt;br /&gt;
      &amp;lt;usealttexture&amp;gt;!Player.IsPaused&amp;lt;/usealttexture&amp;gt;&lt;br /&gt;
      &amp;lt;label&amp;gt;29&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;altlabel&amp;gt;29&amp;lt;/altlabel&amp;gt;&lt;br /&gt;
      &amp;lt;font&amp;gt;font12&amp;lt;/font&amp;gt;&lt;br /&gt;
      &amp;lt;textcolor&amp;gt;FFFFFFFF&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
      &amp;lt;disabledcolor&amp;gt;80FFFFFF&amp;lt;/disabledcolor&amp;gt;&lt;br /&gt;
      &amp;lt;align&amp;gt;left&amp;lt;/align&amp;gt;&lt;br /&gt;
      &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsetx&amp;gt;4&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
      &amp;lt;textoffsety&amp;gt;5&amp;lt;/textoffsety&amp;gt;&lt;br /&gt;
      &amp;lt;pulseonselect&amp;gt;false&amp;lt;/pulseonselect&amp;gt;&lt;br /&gt;
      &amp;lt;onclick&amp;gt;Player.Pause&amp;lt;/onclick&amp;gt;&lt;br /&gt;
      &amp;lt;onfocus&amp;gt;&amp;lt;/onfocus&amp;gt;&lt;br /&gt;
      &amp;lt;onunfocus&amp;gt;&amp;lt;/onunfocus&amp;gt;&lt;br /&gt;
      &amp;lt;onup&amp;gt;2&amp;lt;/onup&amp;gt;&lt;br /&gt;
      &amp;lt;ondown&amp;gt;3&amp;lt;/ondown&amp;gt;&lt;br /&gt;
      &amp;lt;onleft&amp;gt;1&amp;lt;/onleft&amp;gt;&lt;br /&gt;
      &amp;lt;onright&amp;gt;1&amp;lt;/onright&amp;gt;&lt;br /&gt;
      &amp;lt;wrapmultiline&amp;gt;false&amp;lt;/wrapmultiline&amp;gt;&lt;br /&gt;
&amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;texturefocus&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the image file which should be displayed when the button has focus. [[Texture Attributes|See here for additional information about texture tags.]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;texturenofocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the image file which should be displayed when the button does not have focus.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;alttexturefocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the image file which should be displayed when the toggle button is in it&#039;s selected state. This texture replaces the &amp;lt;texturefocus&amp;gt; texture when the toggle button is selected.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;alttexturenofocus&#039;&#039;&#039;&lt;br /&gt;
| Specifies the image file which should be displayed when the button is in it&#039;s selected state but unfocused.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;usealttexture&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the conditions under which the Alternative Textures should be shown. Some toggle button controls are handled by Kodi internally, but any extra ones that the skinner has can be controlled using this tag. [[Conditional Visibility|See here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
| The label used on the button. It can be a link into strings.po, or an actual text label.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;altlabel&#039;&#039;&#039;&lt;br /&gt;
| The alternate label used on the button. It can be a link into strings.po, or an actual text label.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;altclick&#039;&#039;&#039;&lt;br /&gt;
| The alternate action to perform when the button is pressed. Should be a built in function. [[List of Built In Functions|See here for more information.]] You may have more than one &amp;lt;altclick&amp;gt; tag, and they&#039;ll be executed in sequence.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
| Font used for the button label. From fonts.xml.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
| Color used for displaying the button label. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;disabledcolor&#039;&#039;&#039;&lt;br /&gt;
| Color used for the button label if the button is disabled. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;shadowcolor&#039;&#039;&#039;&lt;br /&gt;
| Specifies the color of the drop shadow on the text. In AARRGGBB hex format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;align&#039;&#039;&#039;&lt;br /&gt;
| Label horizontal alignment on the button. Defaults to left, can also be center or right.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;aligny&#039;&#039;&#039;&lt;br /&gt;
| Label vertical alignment on the button. Defaults to top, can also be center.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;textoffsetx&#039;&#039;&#039;&lt;br /&gt;
| Amount to offset the label from the left (or right) edge of the button when using left or right alignment.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;textoffsety&#039;&#039;&#039;&lt;br /&gt;
| Amount to offset the label from the top edge of the button when using top alignment.&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textwidth&#039;&#039;&#039;&lt;br /&gt;
| Will truncate any text that&#039;s too long.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onclick&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the action to perform when the button is pressed. Should be a built in function. [[List of Built In Functions|See here for more information.]] You may have more than one &amp;lt;onclick&amp;gt; tag, and they&#039;ll be executed in sequence.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;onfocus&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the action to perform when the button is focused. Should be a built in function. The action is performed after any focus animations have completed. [[List of Built In Functions|See here for more information.]]&lt;br /&gt;
|-  &lt;br /&gt;
|   &#039;&#039;&#039;onunfocus&#039;&#039;&#039;&lt;br /&gt;
|  &lt;br /&gt;
Specifies the action to perform when the button loses focus. Should be a built in function.&lt;br /&gt;
|-  &lt;br /&gt;
|   &#039;&#039;&#039;wrapmultiline&#039;&#039;&#039;&lt;br /&gt;
|  &lt;br /&gt;
Allows wrapping on the label across multiple lines. Defaults to false.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Plugin_sources&amp;diff=241871</id>
		<title>Plugin sources</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Plugin_sources&amp;diff=241871"/>
		<updated>2022-04-14T00:48:48Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Interacting with Kodi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]|[[Python development]]}}&lt;br /&gt;
&lt;br /&gt;
Plugin sources are [[Add-on development|add-ons for Kodi]] that provide a media listing for the user. They are currently written in python, and can provide video, music, image or executable content. Once a user installs your plugin source, it will automatically show up in the appropriate section(s) within Kodi based on the content it provides.&lt;br /&gt;
&lt;br /&gt;
== Basic overview ==&lt;br /&gt;
When the user clicks on your plugin source, your python plugin gets called, allowing you to fetch a listing of media and return it for Kodi to display. You may return either media items directly (for immediate playback) or may return folder items that contain links back into your plugin source. When the user clicks on a media item it&#039;ll start playing straight away, just like any other media. When the user clicks on a folder that you provide, your plugin will be called again with information on what folder item was clicked on given in the arguments. You may then return a different listing of media content and folders as required.&lt;br /&gt;
&lt;br /&gt;
== What Kodi requires for your add-on ==&lt;br /&gt;
For Kodi to know what to do with your add-on, we require your plugin, and an addon.xml file which describes your plugin source. See [[Add-on development|here]] for more information on addon.xml, including how you add descriptions to your addon for users. A plugin source extends Kodi via the xbmc.python.pluginsource extension point. The layout of the XML describing this extension point is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot;&lt;br /&gt;
           library=&amp;quot;myplugin.py&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;provides&amp;gt;image video&amp;lt;/provides&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The library attribute provides the file of the python plugin that contains the main entry point of your plugin. The &amp;lt;provides&amp;gt; element is a whitespace separated list of image, video, audio, executable. There is a [https://github.com/xbmc/xbmc/blob/master/addons/xbmc.python/pluginsource.xsd schema available here] to check you have your XML correctly defined.&lt;br /&gt;
&lt;br /&gt;
== Interacting with Kodi ==&lt;br /&gt;
The main form of interacting with Kodi will be parsing what Kodi feeds you in terms of arguments to your plugin to find out what &amp;quot;folder&amp;quot; the user wants to retrieve, and then returning items to Kodi as you construct them. Given that your plugin can return information to the user, you may wish to allow some (or all) of the information you provide to be translatable. You do this by providing a strings.po file (in resources/language/resurce.language.&amp;lt;name_of_language&amp;gt;/strings.po) which associates integer id&#039;s with each label. Kodi then handles loading these string files and ensuring that the users&#039; locale information is taken into account. To display strings you use the &#039;&#039;&#039;getString&#039;&#039;&#039; function in the xbmcaddon module.&lt;br /&gt;
&lt;br /&gt;
Your plugin only runs while it&#039;s retrieving a listing - once it has finished the listing it is terminated. Thus, if you wish to store state information, you can do so either in the URLs you return to Kodi (for different folders for instance) or by storing information in a settings file. In addition, you may have particular configuration settings for your addon which can also be accessed via the settings functions in the xbmcaddon module.&lt;br /&gt;
&lt;br /&gt;
If your plugin can provide several content types, Kodi will pass a &#039;content_type&#039; parameter to the plugin when listing the root directory. This can be used to only return content of the requested type.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Python development]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on development]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Plugin_sources&amp;diff=241870</id>
		<title>Plugin sources</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Plugin_sources&amp;diff=241870"/>
		<updated>2022-04-14T00:47:10Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Interacting with Kodi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]|[[Python development]]}}&lt;br /&gt;
&lt;br /&gt;
Plugin sources are [[Add-on development|add-ons for Kodi]] that provide a media listing for the user. They are currently written in python, and can provide video, music, image or executable content. Once a user installs your plugin source, it will automatically show up in the appropriate section(s) within Kodi based on the content it provides.&lt;br /&gt;
&lt;br /&gt;
== Basic overview ==&lt;br /&gt;
When the user clicks on your plugin source, your python plugin gets called, allowing you to fetch a listing of media and return it for Kodi to display. You may return either media items directly (for immediate playback) or may return folder items that contain links back into your plugin source. When the user clicks on a media item it&#039;ll start playing straight away, just like any other media. When the user clicks on a folder that you provide, your plugin will be called again with information on what folder item was clicked on given in the arguments. You may then return a different listing of media content and folders as required.&lt;br /&gt;
&lt;br /&gt;
== What Kodi requires for your add-on ==&lt;br /&gt;
For Kodi to know what to do with your add-on, we require your plugin, and an addon.xml file which describes your plugin source. See [[Add-on development|here]] for more information on addon.xml, including how you add descriptions to your addon for users. A plugin source extends Kodi via the xbmc.python.pluginsource extension point. The layout of the XML describing this extension point is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;extension point=&amp;quot;xbmc.python.pluginsource&amp;quot;&lt;br /&gt;
           library=&amp;quot;myplugin.py&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;provides&amp;gt;image video&amp;lt;/provides&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The library attribute provides the file of the python plugin that contains the main entry point of your plugin. The &amp;lt;provides&amp;gt; element is a whitespace separated list of image, video, audio, executable. There is a [https://github.com/xbmc/xbmc/blob/master/addons/xbmc.python/pluginsource.xsd schema available here] to check you have your XML correctly defined.&lt;br /&gt;
&lt;br /&gt;
== Interacting with Kodi ==&lt;br /&gt;
The main form of interacting with Kodi will be parsing what Kodi feeds you in terms of arguments to your plugin to find out what &amp;quot;folder&amp;quot; the user wants to retrieve, and then returning items to Kodi as you construct them. Given that your plugin can return information to the user, you may wish to allow some (or all) of the information you provide to be translatable. You do this by providing a strings.po file (in resources/language/&amp;lt;name_of_language&amp;gt;/strings.po) which associates integer id&#039;s with each label. Kodi then handles loading these string files and ensuring that the users&#039; locale information is taken into account. To display strings you use the &#039;&#039;&#039;getString&#039;&#039;&#039; function in the xbmcaddon module. &#039;&#039;&#039;N.B.&#039;&#039;&#039; From Kodi 19 onwards, strings.po has been replaced with [[Language_support#What_is_strings.po|strings.po]].&lt;br /&gt;
&lt;br /&gt;
Your plugin only runs while it&#039;s retrieving a listing - once it has finished the listing it is terminated. Thus, if you wish to store state information, you can do so either in the URLs you return to Kodi (for different folders for instance) or by storing information in a settings file. In addition, you may have particular configuration settings for your addon which can also be accessed via the settings functions in the xbmcaddon module.&lt;br /&gt;
&lt;br /&gt;
If your plugin can provide several content types, Kodi will pass a &#039;content_type&#039; parameter to the plugin when listing the root directory. This can be used to only return content of the requested type.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Python development]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on development]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Script_subtitles&amp;diff=241869</id>
		<title>Script subtitles</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Script_subtitles&amp;diff=241869"/>
		<updated>2022-04-14T00:46:36Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Interacting with XBMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What Kodi requires for your add-on==&lt;br /&gt;
For XBMC to know what to do with your addon, we require your script, and an addon.xml file. See [[Add-on_development|here]] for more information on addon.xml, including how you add descriptions to your addon for users. A plugin source extends XBMC via the xbmc.python.subtitles extension point. The layout of the XML describing this extension point is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.subtitles&amp;quot;&lt;br /&gt;
             library=&amp;quot;default.py&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
list of extension points and their explanation:&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;xbmc.python.script&amp;quot;          This is the standard Script extension point&lt;br /&gt;
&lt;br /&gt;
below listed extensions will not appear in the Scripts/Programs window and can only be run via skin shortcuts&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;xbmc.python.weather&amp;quot;        Used for weather scripts&lt;br /&gt;
   &amp;quot;xbmc.python.subtitles&amp;quot;      Used for subtitle scripts&lt;br /&gt;
   &amp;quot;xbmc.python.lyrics&amp;quot;         Used for lyrics scripts&lt;br /&gt;
   &amp;quot;xbmc.python.library&amp;quot;        Used for skin dependent scripts (e.g. recently added script)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of &amp;quot;xbmc.python.subtitles&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;addon id=&amp;quot;script.xbmc.subtitles&amp;quot;&lt;br /&gt;
       name=&amp;quot;XBMC Subtitles&amp;quot;&lt;br /&gt;
       version=&amp;quot;1.7.4&amp;quot;&lt;br /&gt;
       provider-name=&amp;quot;Amet&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;requires&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot; version=&amp;quot;1.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/requires&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.subtitles&amp;quot;&lt;br /&gt;
             library=&amp;quot;default.py&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;summary lang=&amp;quot;en&amp;quot;&amp;gt;XBMC Subtitles&amp;lt;/summary&amp;gt;&lt;br /&gt;
    &amp;lt;summary lang=&amp;quot;hu&amp;quot;&amp;gt;XBMC feliratok&amp;lt;/summary&amp;gt; &lt;br /&gt;
    &amp;lt;description lang=&amp;quot;en&amp;quot;&amp;gt;Search and download subtitles from OpenSubtitles.org, Podnapisi.net, Sublight.si and Bierdopje.com. Subtitle button on OSD needs to be activated and path set to Kodi Subtitles under System-&amp;gt; Skin-&amp;gt; Addon Scripts&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;description lang=&amp;quot;hu&amp;quot;&amp;gt;Film feliratok keresése letöltése az OpenSubtitles.org, Podnapisi.net, Sublight.si and Bierdopje.com webhelyekról. A dalszöveg OSD gombot aktiválni kell az elérési út megadásával a Beállítások -&amp;gt; Skin -&amp;gt; Szkriptek alatt.&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;description lang=&amp;quot;sr&amp;quot;&amp;gt;Претражи и скини преводе са OpenSubtitles.org, Podnapisi.net, Sublight.si и Bierdopje.com. Дугме за преводе на OSD треба да се активира и изабере Kodi Subtitles у Систем-&amp;gt; Маска-&amp;gt; Скрипт додаци&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Interacting with XBMC ==&lt;br /&gt;
Given that your script can return information to the user, you may wish to allow some (or all) of the information you provide to be translatable. You do this by providing a strings.po file (in resources/language/&amp;lt;name_of_language&amp;gt;/strings.po) which associates integer id&#039;s with each label. XBMC then handles loading these string files and ensuring that the users&#039; locale information is taken into account. To display strings you use the &#039;&#039;&#039;getString&#039;&#039;&#039; function in the xbmcaddon module.&lt;br /&gt;
&lt;br /&gt;
[[Category:Add-on development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Script_lyrics&amp;diff=241868</id>
		<title>Script lyrics</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Script_lyrics&amp;diff=241868"/>
		<updated>2022-04-14T00:45:19Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Interacting with XBMC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]|[[Add-on development]]}}&lt;br /&gt;
==What Kodi requires for your add-on==&lt;br /&gt;
For XBMC to know what to do with your add-on, we require your script, and an addon.xml file. See [[Add-on development|here]] for more information on addon.xml, including how you add descriptions to your addon for users. A plugin source extends XBMC via the xbmc.python.lyrics extension point. The layout of the XML describing this extension point is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.lyrics&amp;quot;&lt;br /&gt;
             library=&amp;quot;default.py&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
list of extension points and their explanation:&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;xbmc.python.script&amp;quot;          This is the standard Script extension point&lt;br /&gt;
&lt;br /&gt;
below listed extensions will not appear in the Scripts/Programs window and can only be run via skin shortcuts&lt;br /&gt;
&lt;br /&gt;
   &amp;quot;xbmc.python.weather&amp;quot;        Used for weather scripts&lt;br /&gt;
   &amp;quot;xbmc.python.subtitles&amp;quot;      Used for subtitle scripts&lt;br /&gt;
   &amp;quot;xbmc.python.lyrics&amp;quot;         Used for lyrics scripts&lt;br /&gt;
   &amp;quot;xbmc.python.library&amp;quot;        Used for skin dependent scripts (e.g. recently added script)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example of &amp;quot;xbmc.python.lyrics&amp;quot;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;addon id=&amp;quot;script.cu.lyrics&amp;quot;&lt;br /&gt;
       name=&amp;quot;CU Lyrics&amp;quot;&lt;br /&gt;
       version=&amp;quot;0.8.6&amp;quot;&lt;br /&gt;
       provider-name=&amp;quot;Amet&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;requires&amp;gt;&lt;br /&gt;
    &amp;lt;import addon=&amp;quot;xbmc.python&amp;quot; version=&amp;quot;1.0&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/requires&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.python.lyrics&amp;quot;&lt;br /&gt;
             library=&amp;quot;default.py&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;extension point=&amp;quot;xbmc.addon.metadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;summary lang=&amp;quot;en&amp;quot;&amp;gt;CU Lyrics&amp;lt;/summary&amp;gt;&lt;br /&gt;
    &amp;lt;description lang=&amp;quot;en&amp;quot;&amp;gt;Search, download and display lyrics from LyricWIKI.org. Downloaded lyrics will be saved in userdata/addon_data.Lyrics button on OSD needs to be activated and path set to CU Lyrics under Settings-&amp;gt; Skin-&amp;gt; Scripts &amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;platform&amp;gt;all&amp;lt;/platform&amp;gt;&lt;br /&gt;
  &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/addon&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Interacting with XBMC ==&lt;br /&gt;
Given that your script can return information to the user, you may wish to allow some (or all) of the information you provide to be translatable. You do this by providing a strings.po file (in resources/language/&amp;lt;name_of_language&amp;gt;/strings.po) which associates integer id&#039;s with each label. XBMC then handles loading these string files and ensuring that the users&#039; locale information is taken into account. To display strings you use the &#039;&#039;&#039;getString&#039;&#039;&#039; function in the xbmcaddon module.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Add-ons]]&lt;br /&gt;
* [[Unofficial add-on repositories]]&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Addon Settings]]&lt;br /&gt;
* [[Add-on repositories]]&lt;br /&gt;
* [[Official add-on repository]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Python]]&lt;br /&gt;
[[Category:Add-on development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Label_control&amp;diff=241867</id>
		<title>Label control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Label_control&amp;diff=241867"/>
		<updated>2022-04-14T00:43:28Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The label control is used for displaying text in Kodi. You can choose the font, size, colour, location and contents of the text to be displayed.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;control type=&amp;quot;label&amp;quot; id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;My First label&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
        &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
        &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
        &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
        &amp;lt;align&amp;gt;center&amp;lt;/align&amp;gt;&lt;br /&gt;
        &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
        &amp;lt;scroll&amp;gt;false&amp;lt;/scroll&amp;gt;&lt;br /&gt;
        &amp;lt;label fallback=&amp;quot;$LOCALIZE[123]&amp;quot;&amp;gt;$INFO[MusicPlayer.Artist]&amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;angle&amp;gt;30&amp;lt;/angle&amp;gt;&lt;br /&gt;
        &amp;lt;haspath&amp;gt;false&amp;lt;/haspath&amp;gt;&lt;br /&gt;
        &amp;lt;font&amp;gt;font14&amp;lt;/font&amp;gt;&lt;br /&gt;
        &amp;lt;textcolor&amp;gt;FFB2D4F5&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
        &amp;lt;shadowcolor&amp;gt;ff000000&amp;lt;/shadowcolor&amp;gt;&lt;br /&gt;
        &amp;lt;wrapmultiline&amp;gt;false&amp;lt;/wrapmultiline&amp;gt;&lt;br /&gt;
        &amp;lt;scrollspeed&amp;gt;50&amp;lt;/scrollspeed&amp;gt;&lt;br /&gt;
        &amp;lt;scrollsuffix&amp;gt; - &amp;lt;/scrollsuffix&amp;gt;&lt;br /&gt;
  &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Auto size labels ===&lt;br /&gt;
&lt;br /&gt;
Wrapping your label in a grouplist with the auto width and appropriate minium and maximum values. Allows the labels width to dynamically change relevalant to how long the label text is. This allows a image or other control to be alligned to the right of the actual label text no matter how wide the label is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;width min=&amp;quot;29&amp;quot; max=&amp;quot;200&amp;quot;&amp;gt;auto&amp;lt;/width&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, simply specifying &amp;lt;width&amp;gt;auto&amp;lt;/width&amp;gt; is also supported.&lt;br /&gt;
&lt;br /&gt;
=== Multi-line labels ===&lt;br /&gt;
If you want your label control to span multiple lines, you can insert a new line character in your label. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;label&amp;gt;This will be on the first line[CR]And this will be on the second line&amp;lt;/label&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, if you want your label control to conform to the &amp;lt;width&amp;gt; parameter, but still want to be able to give it more content than will fit on one line, then setting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;wrapmultiline&amp;gt;true&amp;lt;/wrapmultiline&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
will cause the text to be cut up (at the spaces in the text) onto multiple lines. Note that if a single word is larger than &amp;lt;width&amp;gt; then it will not be cut, and will still overflow.&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the &#039;&#039;&#039;[[Default Control Tags]]&#039;&#039;&#039; the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case&#039;&#039;&#039;-&#039;&#039;&#039;sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
! align&lt;br /&gt;
| Can be left, right, or center. Aligns the text within the given label &amp;lt;code&amp;gt;&amp;lt;width&amp;gt;&amp;lt;/code&amp;gt;. Defaults to left&lt;br /&gt;
|-&lt;br /&gt;
! aligny&lt;br /&gt;
| Can be top or center. Aligns the text within its given label &amp;lt;code&amp;gt;&amp;lt;height&amp;gt;&amp;lt;/code&amp;gt;. Defaults to  top&lt;br /&gt;
|-&lt;br /&gt;
! scroll&lt;br /&gt;
| When true, the text will scroll if longer than the label&#039;s &amp;lt;code&amp;gt;&amp;lt;width&amp;gt;&amp;lt;/code&amp;gt;. If false, the text will be truncated. Defaults to false.&lt;br /&gt;
|-&lt;br /&gt;
! label&lt;br /&gt;
| Specifies the text which should be drawn. You should specify an entry from the strings.po here (either the Kodi strings.po or your skin&#039;s strings.po file). The fallback attribute will be used when the infolabel returns empty. You can use the full [[Label Formatting|label formatting syntax]] and [[Label Parsing|you may also specify more than one piece of information here by using the $INFO and $LOCALIZE formats.]]&lt;br /&gt;
|-&lt;br /&gt;
! info&lt;br /&gt;
| Specifies the information that should be presented. Kodi will &amp;lt;span class=&amp;quot;nobr&amp;quot;&amp;gt;auto-fill&amp;lt;/span&amp;gt; in this info in place of the &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt;. [[InfoLabels|See here for more information.]]&lt;br /&gt;
|-&lt;br /&gt;
! number&lt;br /&gt;
| Specifies a number that should be presented. This is just here to allow a skinner to use a number rather than a text label (as any number given to &amp;lt;code&amp;gt;&amp;lt;label&amp;gt;&amp;lt;/code&amp;gt; will be used to lookup in strings.po)&lt;br /&gt;
|-&lt;br /&gt;
! angle&lt;br /&gt;
| The angle the text should be rendered at, in degrees. A value of 0 is horizontal.&lt;br /&gt;
|-&lt;br /&gt;
! haspath&lt;br /&gt;
| Specifies whether or not this label is filled with a path. Long paths are shortened by compressing the file path while keeping the actual filename full length.&lt;br /&gt;
|-&lt;br /&gt;
! font&lt;br /&gt;
| Specifies the font to use from the font.xml file.&lt;br /&gt;
|-&lt;br /&gt;
! textcolor&lt;br /&gt;
| Specifies the color the text should be, in hex AARRGGBB format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-&lt;br /&gt;
! shadowcolor&lt;br /&gt;
| Specifies the color of the drop shadow on the text, in AARRGGBB format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-&lt;br /&gt;
! wrapmultiline&lt;br /&gt;
| If true, any text that doesn&#039;t fit on one line will be wrapped onto multiple lines.&lt;br /&gt;
|-&lt;br /&gt;
! scrollspeed&lt;br /&gt;
| Scroll speed of text in pixels per second. Defaults to 60.&lt;br /&gt;
|-&lt;br /&gt;
! scrollsuffix&lt;br /&gt;
| Specifies the suffix used in scrolling labels. Defaults to &amp;quot; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; &amp;quot;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Edit_Control&amp;diff=241866</id>
		<title>Edit Control</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Edit_Control&amp;diff=241866"/>
		<updated>2022-04-14T00:42:44Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Available tags */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;section begin=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
The edit control allows a user to input text in Kodi. You can choose the font, size, colour, location and header of the text to be displayed.&lt;br /&gt;
=== Example ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;control type=&amp;quot;edit&amp;quot; id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;My First edit control&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;left&amp;gt;80&amp;lt;/left&amp;gt;&lt;br /&gt;
        &amp;lt;top&amp;gt;60&amp;lt;/top&amp;gt;&lt;br /&gt;
        &amp;lt;width&amp;gt;250&amp;lt;/width&amp;gt;&lt;br /&gt;
        &amp;lt;visible&amp;gt;true&amp;lt;/visible&amp;gt;&lt;br /&gt;
        &amp;lt;aligny&amp;gt;center&amp;lt;/aligny&amp;gt;&lt;br /&gt;
        &amp;lt;label&amp;gt;Search&amp;lt;/label&amp;gt;&lt;br /&gt;
        &amp;lt;hinttext&amp;gt;Enter search string&amp;lt;/hinttext&amp;gt;&lt;br /&gt;
        &amp;lt;font&amp;gt;font14&amp;lt;/font&amp;gt;&lt;br /&gt;
	&amp;lt;textoffsetx&amp;gt;10&amp;lt;/textoffsetx&amp;gt;&lt;br /&gt;
        &amp;lt;textcolor&amp;gt;FFB2D4F5&amp;lt;/textcolor&amp;gt;&lt;br /&gt;
	&amp;lt;disabledcolor&amp;gt;FF000000&amp;lt;/disabledcolor&amp;gt;&lt;br /&gt;
	&amp;lt;invalidcolor&amp;gt;FFFFFFFF&amp;lt;/invalidcolor&amp;gt;&lt;br /&gt;
	&amp;lt;texturefocus&amp;gt;button-focus.png&amp;lt;/texturefocus&amp;gt;&lt;br /&gt;
	&amp;lt;texturenofocus&amp;gt;button-nofocus.png&amp;lt;/texturenofocus&amp;gt;&lt;br /&gt;
	&amp;lt;pulseonselect&amp;gt;no&amp;lt;/pulseonselect&amp;gt;&lt;br /&gt;
  &amp;lt;/control&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Available tags ===&lt;br /&gt;
In addition to the [[Default Control Tags]] the following tags are available. Note that each tag is &#039;&#039;&#039;lower case&#039;&#039;&#039; only. This is important, as xml tags are case-sensitive.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Tag !! Description&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;aligny&#039;&#039;&#039;&lt;br /&gt;
|  Can be top or center. Aligns the text within its given control &amp;lt;height&amp;gt;. Defaults to  top&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
| &lt;br /&gt;
Specifies the header text which should be shown. You should specify an entry from the strings.po here (either the Kodi strings.po or your skin&#039;s strings.po file), however you may also hardcode a piece of text also if you wish, though of course it will not be localized. You can use the full [[Label Formatting|label formatting syntax]] and [[Label Parsing|you may also specify more than one piece of information here by using the $INFO and $LOCALIZE formats.strings]].xml)&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;hinttext&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the text which should be displayed in the edit label control, until the user enters some text. It can be used to provide a clue as to what a user should enter in this control.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;font&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the font to use from the font.xml file.&lt;br /&gt;
|- &lt;br /&gt;
|  &#039;&#039;&#039;textcolor&#039;&#039;&#039;&lt;br /&gt;
|  Specifies the color the text should be, in hex AARRGGBB format, or a name from the [[Colour themes|colour theme.]]&lt;br /&gt;
|-  &lt;br /&gt;
| &#039;&#039;&#039;textwidth&#039;&#039;&#039;&lt;br /&gt;
| Will truncate any text that&#039;s too long.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section end=&amp;quot;main content&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&#039;&#039;&#039;Development:&#039;&#039;&#039;&lt;br /&gt;
* [[Add-on development]]&lt;br /&gt;
* [[Skinning]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Skin development]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_support&amp;diff=241865</id>
		<title>Language support</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_support&amp;diff=241865"/>
		<updated>2022-04-14T00:40:24Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Layout of the strings.po file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
The following page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi.&amp;lt;br/&amp;gt;&lt;br /&gt;
English (United Kingdom) is the default language of Kodi so it is the English language in the Git repository that is always up-to-date.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please always base your translations of the latest English language file from Git. The latest language files for Kodi can be found and downloaded [https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po here (link)].&lt;br /&gt;
&lt;br /&gt;
=== Language add-ons ===&lt;br /&gt;
By default Kodi only includes one language which is English (united Kingdom). All other languages have been moved to [https://kodi.wiki/view/Category:Language_add-ons individual language add-ons] which are available form our Kodi repository for download and install. They are auto update by Team Kodi once in a while and pushed to our repository from which you will receive these updates depending on what language(s) you have installed.&lt;br /&gt;
&lt;br /&gt;
=== What is langinfo.xml ===&lt;br /&gt;
The langinfo.xml file contains language and region specific localization settings used internally by Kodi. Basically it is the default [http://en.wikipedia.org/wiki/Code_page code page] Kodi uses for this language file.&lt;br /&gt;
&lt;br /&gt;
==== Layout of a langinfo.xml file ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&lt;br /&gt;
    &amp;lt;charsets&amp;gt;&lt;br /&gt;
      &amp;lt;gui&amp;gt;GB2312&amp;lt;/gui&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;GB2312&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/charsets&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;dvd&amp;gt;&lt;br /&gt;
      &amp;lt;menu&amp;gt;cn&amp;lt;/menu&amp;gt;&lt;br /&gt;
      &amp;lt;audio&amp;gt;cn&amp;lt;/audio&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;cn&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/dvd&amp;gt;&lt;br /&gt;
  &amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;charset&amp;gt; section:&lt;br /&gt;
&amp;lt;gui&amp;gt;: Specifies the character encoding of everything within Kodi that is not unicode. E.g. id3 tags with none unicode encoding.&lt;br /&gt;
&amp;lt;subtitle&amp;gt;: Default character encoding of subtitles when using a TTF (True-Type-Font).&lt;br /&gt;
Choose one encoding for each in the list below. The values may differ if you like.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The &amp;lt;dvd&amp;gt; section:&lt;br /&gt;
Defines the default languages for DVD-Video menu, audio and subtitle language for the [[VideoPlayer]]. Choose one for each entry out of the list of ISO-639 language abbreviations. If the DVD-Video you are playing does not support the language that you specified then it will default to English.&lt;br /&gt;
&lt;br /&gt;
=== What is strings.po ===&lt;br /&gt;
This files contains all strings displayed in the user interface of Kodi.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the strings.po file ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# Kodi Media Center language file&lt;br /&gt;
# Addon Name: Skin Widgets&lt;br /&gt;
# Addon id: service.skin.widgets&lt;br /&gt;
# Addon Provider: Martijn, phil65&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: Kodi Addons\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: translations@kodi.tv\n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: Kodi Translation Team\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: English (https://kodi.weblate.cloud/languages/en_gb/)\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=UTF-8\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&amp;quot;Language: en\n&amp;quot;&lt;br /&gt;
&amp;quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32001&amp;quot;&lt;br /&gt;
msgid &amp;quot;Recommended&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32002&amp;quot;&lt;br /&gt;
msgid &amp;quot;Random Items&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# empty string with id 32003&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32004&amp;quot;&lt;br /&gt;
msgid &amp;quot;Randomize time (minutes)&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32005&amp;quot;&lt;br /&gt;
msgid &amp;quot;Use season folders&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a format defined by [https://www.gnu.org/software/gettext/ GNU gettext] but adapted in a very specific way by Kodi. The blocks of 3 settings in the example above are defined by GNU gettext as:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &#039;&#039;context&#039;&#039;&lt;br /&gt;
 msgid &#039;&#039;untranslated-string&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translated-string&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Where the text is defined by &#039;&#039;untranslated-string&#039;&#039; and &#039;&#039;context&#039;&#039; serves to differentiate identical values.&lt;br /&gt;
&lt;br /&gt;
Take note, in Kodi, these are used as follows:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &amp;quot;#&#039;&#039;label_id&#039;&#039;&amp;quot;&lt;br /&gt;
 msgid &#039;&#039;label_text&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;label_id&#039;&#039; is a numeric ID. These IDs are reserved by Kodi:&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
and are used in [[Add-on_settings_conversion|settings.xml]] to label settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;label_text&#039;&#039; defines the English text for the label.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;translation&#039;&#039; is empty for &amp;quot;en_GB&amp;quot; labels, and the translation for other languages with msgid retaining the English text.&lt;br /&gt;
&lt;br /&gt;
The important thing is that you cannot refer to the label with msgid in the settings.py file, you need to use the &#039;&#039;label_id&#039;&#039; which must be encoded in msgctxt as above.&lt;br /&gt;
&lt;br /&gt;
You can of course edit .po files in a text editor or with a specialist editor.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the language folders ====&lt;br /&gt;
&lt;br /&gt;
Kodi loads the strings.po file depending on the set interface language. Should it find a matching language it will try to load that strings.po. If not available it will always fall back to English (United Kingdom).&lt;br /&gt;
For this to work you will need to place the strings.po in the correctly named folder depending on the language. These folders use &amp;quot;language-country&amp;quot; naming scheme. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Add-ons:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/resources/language/resource.language.en_gb/strings.po&lt;br /&gt;
/resources/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/resources/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Skins:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/language/resource.language.en_gb/strings.po&lt;br /&gt;
/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Please use lower case for folder and file names.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
An extensive example list of used languages can be found here https://github.com/xbmc/xbmc/tree/master/addons/skin.estuary/language&lt;br /&gt;
&lt;br /&gt;
== Adding a new language to Kodi ==&lt;br /&gt;
&lt;br /&gt;
{{see|Language portal}}&lt;br /&gt;
&lt;br /&gt;
== Maintaining a language ==&lt;br /&gt;
The English (UK) language file ([https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po]) is the master for all language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
From time to time the English (UK) language file changes. This will instantly be automatically updated at Weblate translation pages.&lt;br /&gt;
&lt;br /&gt;
== Related articles in the Kodi online manual ==&lt;br /&gt;
* [[Translations|Translations in Kodi]]&lt;br /&gt;
* [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
* [[List_of_supported_charsets|List of Supported Charsets]]&lt;br /&gt;
* [[List of language codes (ISO-639:1988)]]&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
Kodi uses UTF-8 as internal character encoding. Please make sure if you add new features to Kodi which depend on external data to convert these to UTF-8 if they aren&#039;t already. Use the languagefile from branches/linuxport, since we merge that file into trunk.&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Skin development]]&lt;br /&gt;
[[Category:Languages|*]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_support&amp;diff=241864</id>
		<title>Language support</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_support&amp;diff=241864"/>
		<updated>2022-04-14T00:34:25Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
The following page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi.&amp;lt;br/&amp;gt;&lt;br /&gt;
English (United Kingdom) is the default language of Kodi so it is the English language in the Git repository that is always up-to-date.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please always base your translations of the latest English language file from Git. The latest language files for Kodi can be found and downloaded [https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po here (link)].&lt;br /&gt;
&lt;br /&gt;
=== Language add-ons ===&lt;br /&gt;
By default Kodi only includes one language which is English (united Kingdom). All other languages have been moved to [https://kodi.wiki/view/Category:Language_add-ons individual language add-ons] which are available form our Kodi repository for download and install. They are auto update by Team Kodi once in a while and pushed to our repository from which you will receive these updates depending on what language(s) you have installed.&lt;br /&gt;
&lt;br /&gt;
=== What is langinfo.xml ===&lt;br /&gt;
The langinfo.xml file contains language and region specific localization settings used internally by Kodi. Basically it is the default [http://en.wikipedia.org/wiki/Code_page code page] Kodi uses for this language file.&lt;br /&gt;
&lt;br /&gt;
==== Layout of a langinfo.xml file ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&lt;br /&gt;
    &amp;lt;charsets&amp;gt;&lt;br /&gt;
      &amp;lt;gui&amp;gt;GB2312&amp;lt;/gui&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;GB2312&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/charsets&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;dvd&amp;gt;&lt;br /&gt;
      &amp;lt;menu&amp;gt;cn&amp;lt;/menu&amp;gt;&lt;br /&gt;
      &amp;lt;audio&amp;gt;cn&amp;lt;/audio&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;cn&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/dvd&amp;gt;&lt;br /&gt;
  &amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;charset&amp;gt; section:&lt;br /&gt;
&amp;lt;gui&amp;gt;: Specifies the character encoding of everything within Kodi that is not unicode. E.g. id3 tags with none unicode encoding.&lt;br /&gt;
&amp;lt;subtitle&amp;gt;: Default character encoding of subtitles when using a TTF (True-Type-Font).&lt;br /&gt;
Choose one encoding for each in the list below. The values may differ if you like.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The &amp;lt;dvd&amp;gt; section:&lt;br /&gt;
Defines the default languages for DVD-Video menu, audio and subtitle language for the [[VideoPlayer]]. Choose one for each entry out of the list of ISO-639 language abbreviations. If the DVD-Video you are playing does not support the language that you specified then it will default to English.&lt;br /&gt;
&lt;br /&gt;
=== What is strings.po ===&lt;br /&gt;
This files contains all strings displayed in the user interface of Kodi.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the strings.po file ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# Kodi Media Center language file&lt;br /&gt;
# Addon Name: Skin Widgets&lt;br /&gt;
# Addon id: service.skin.widgets&lt;br /&gt;
# Addon Provider: Martijn, phil65&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: Kodi Addons\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: translations@kodi.tv\n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: Kodi Translation Team\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: English (https://kodi.weblate.cloud/languages/en_gb/)\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=UTF-8\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&amp;quot;Language: en\n&amp;quot;&lt;br /&gt;
&amp;quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32001&amp;quot;&lt;br /&gt;
msgid &amp;quot;Recommended&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32002&amp;quot;&lt;br /&gt;
msgid &amp;quot;Random Items&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# empty string with id 32003&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32004&amp;quot;&lt;br /&gt;
msgid &amp;quot;Randomize time (minutes)&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32005&amp;quot;&lt;br /&gt;
msgid &amp;quot;Use season folders&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a format defined by [https://www.gnu.org/software/gettext/ GNU gettext] but adapted in a very specific way by Kodi. The blocks of 3 settings in the example above are defined by GNU gettext as:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &#039;&#039;context&#039;&#039;&lt;br /&gt;
 msgid &#039;&#039;untranslated-string&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translated-string&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Where the text is defined by &#039;&#039;untranslated-string&#039;&#039; and &#039;&#039;context&#039;&#039; serves to differentiate identical values.&lt;br /&gt;
&lt;br /&gt;
Take note, in Kodi, these are used as follows:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &amp;quot;#&#039;&#039;label_id&#039;&#039;&amp;quot;&lt;br /&gt;
 msgid &#039;&#039;label_text&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;label_id&#039;&#039; is a numeric ID. These IDs are reserved by Kodi:&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
and are used in [[Add-on_settings_conversion|settings.xml]] to label settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;label_text&#039;&#039; defines the English text for the label.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;translation&#039;&#039; is empty for &amp;quot;en_GB&amp;quot; labels, and the translation for other languages with msgid retaining the English text.&lt;br /&gt;
&lt;br /&gt;
The important thing is that you cannot refer to the label with msgid in the settings.py file, you need to use the &#039;&#039;label_id&#039;&#039; which must be encoded in msgctxt as above.&lt;br /&gt;
&lt;br /&gt;
You can of course edit .po files in a text editor or with a specialist editor. There is a tool that will help converting old settings.xml files to the settings.po format:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/ronie/script.language-convert&lt;br /&gt;
&lt;br /&gt;
==== Layout of the language folders ====&lt;br /&gt;
&lt;br /&gt;
Kodi loads the strings.po file depending on the set interface language. Should it find a matching language it will try to load that strings.po. If not available it will always fall back to English (United Kingdom).&lt;br /&gt;
For this to work you will need to place the strings.po in the correctly named folder depending on the language. These folders use &amp;quot;language-country&amp;quot; naming scheme. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Add-ons:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/resources/language/resource.language.en_gb/strings.po&lt;br /&gt;
/resources/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/resources/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Skins:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/language/resource.language.en_gb/strings.po&lt;br /&gt;
/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Please use lower case for folder and file names.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
An extensive example list of used languages can be found here https://github.com/xbmc/xbmc/tree/master/addons/skin.estuary/language&lt;br /&gt;
&lt;br /&gt;
== Adding a new language to Kodi ==&lt;br /&gt;
&lt;br /&gt;
{{see|Language portal}}&lt;br /&gt;
&lt;br /&gt;
== Maintaining a language ==&lt;br /&gt;
The English (UK) language file ([https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po]) is the master for all language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
From time to time the English (UK) language file changes. This will instantly be automatically updated at Weblate translation pages.&lt;br /&gt;
&lt;br /&gt;
== Related articles in the Kodi online manual ==&lt;br /&gt;
* [[Translations|Translations in Kodi]]&lt;br /&gt;
* [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
* [[List_of_supported_charsets|List of Supported Charsets]]&lt;br /&gt;
* [[List of language codes (ISO-639:1988)]]&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
Kodi uses UTF-8 as internal character encoding. Please make sure if you add new features to Kodi which depend on external data to convert these to UTF-8 if they aren&#039;t already. Use the languagefile from branches/linuxport, since we merge that file into trunk.&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Skin development]]&lt;br /&gt;
[[Category:Languages|*]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241863</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241863"/>
		<updated>2022-04-13T14:21:13Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Submit your add-on or skin for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer in addon.xml can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Translating_add-ons#Workflows_and_scripts|See below for more information]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&amp;lt;br/&amp;gt;&lt;br /&gt;
Required workflows are automatically offered to your add-on repository by pull request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241862</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241862"/>
		<updated>2022-04-13T14:20:08Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Submit your add-on or skin for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer in addon.xml can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Translating_add-ons#Workflows_and_scripts|See below for more information]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&amp;lt;br/&amp;gt;&lt;br /&gt;
Required workflows are automatically offered to your add-on repository by pull request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241861</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241861"/>
		<updated>2022-04-13T14:19:44Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Submit your add-on or skin for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer in addon.xml can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[Translating_add-ons#Workflows_and_scripts||See below for more information]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&amp;lt;br/&amp;gt;&lt;br /&gt;
Required workflows are automatically offered to your add-on repository by pull request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241860</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241860"/>
		<updated>2022-04-13T14:18:50Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Submit your add-on or skin for translation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer in addon.xml can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&amp;lt;br/&amp;gt;&lt;br /&gt;
Required workflows are automatically offered to your add-on repository by pull request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241859</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241859"/>
		<updated>2022-04-13T14:17:38Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Sync time schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised. &lt;br /&gt;
&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate strings.po files. Due to that the way how translations are handled has been changed, too.&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
You can create a new account or use an existing Google, Facebook or Github account.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&amp;lt;br/&amp;gt;&lt;br /&gt;
It depends how many translations are done for a specific language, but usually new versions are released once a month.&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_portal&amp;diff=241858</id>
		<title>Language portal</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_portal&amp;diff=241858"/>
		<updated>2022-04-13T14:14:20Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&lt;br /&gt;
= Languages =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Language_support|Language Support]]}}&#039;&#039;&#039;&lt;br /&gt;
This page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi.&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_language_codes_(ISO-639:1988)|Language Codes - (ISO-639)]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Translations =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translations|Translations in {{kodi}}]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for users and translators, detailing how to translate Kodi and other add-ons into native languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
A full introduction is made to our translation system at Weblate.&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translating_add-ons|Translating your Add-on]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for add-on developers, detailing how to add your add-on, skin etc. to our translation system at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure to read the best practices guide, as many errors and merge conflicts can be avoided by following these steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fonts =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Fonts|Using Fonts]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_supported_charsets|Supported Character Sets]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Interface/Regional|Change {{kodi}} language and regional settings]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Player/Language|Change Audio and Subtitle Languages]]}}&#039;&#039;&#039;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_support&amp;diff=241857</id>
		<title>Language support</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_support&amp;diff=241857"/>
		<updated>2022-04-13T14:11:55Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Related articles in the Kodi online manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
The following page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi.&amp;lt;br/&amp;gt;&lt;br /&gt;
English (United Kingdom) is the default language of Kodi so it is the English language in the Git repository that is always up-to-date.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please always base your translations of the latest English language file from Git. The latest language files for Kodi can be found and downloaded [https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po here (link)].&lt;br /&gt;
&lt;br /&gt;
=== Language add-ons ===&lt;br /&gt;
By default Kodi only includes one language which is English (united Kingdom). All other languages have been moved to [https://kodi.wiki/view/Category:Language_add-ons individual language add-ons] which are available form our Kodi repository for download and install. They are auto update by Team Kodi once in a while and pushed to our repository from which you will receive these updates depending on what language(s) you have installed.&lt;br /&gt;
&lt;br /&gt;
=== What is langinfo.xml ===&lt;br /&gt;
The langinfo.xml file contains language and region specific localization settings used internally by Kodi. Basically it is the default [http://en.wikipedia.org/wiki/Code_page code page] Kodi uses for this language file.&lt;br /&gt;
&lt;br /&gt;
==== Layout of a langinfo.xml file ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&lt;br /&gt;
    &amp;lt;charsets&amp;gt;&lt;br /&gt;
      &amp;lt;gui&amp;gt;GB2312&amp;lt;/gui&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;GB2312&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/charsets&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;dvd&amp;gt;&lt;br /&gt;
      &amp;lt;menu&amp;gt;cn&amp;lt;/menu&amp;gt;&lt;br /&gt;
      &amp;lt;audio&amp;gt;cn&amp;lt;/audio&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;cn&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/dvd&amp;gt;&lt;br /&gt;
  &amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;charset&amp;gt; section:&lt;br /&gt;
&amp;lt;gui&amp;gt;: Specifies the character encoding of everything within Kodi that is not unicode. E.g. id3 tags with none unicode encoding.&lt;br /&gt;
&amp;lt;subtitle&amp;gt;: Default character encoding of subtitles when using a TTF (True-Type-Font).&lt;br /&gt;
Choose one encoding for each in the list below. The values may differ if you like.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The &amp;lt;dvd&amp;gt; section:&lt;br /&gt;
Defines the default languages for DVD-Video menu, audio and subtitle language for the [[VideoPlayer]]. Choose one for each entry out of the list of ISO-639 language abbreviations. If the DVD-Video you are playing does not support the language that you specified then it will default to English.&lt;br /&gt;
&lt;br /&gt;
=== What is strings.po ===&lt;br /&gt;
This files contains all strings displayed in the user interface of Kodi.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the strings.po file ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# Kodi Media Center language file&lt;br /&gt;
# Addon Name: Skin Widgets&lt;br /&gt;
# Addon id: service.skin.widgets&lt;br /&gt;
# Addon Provider: Martijn, phil65&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: Kodi Addons\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: translations@kodi.tv\n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: Kodi Translation Team\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: English (https://kodi.weblate.cloud/languages/en_gb/)\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=UTF-8\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&amp;quot;Language: en\n&amp;quot;&lt;br /&gt;
&amp;quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32001&amp;quot;&lt;br /&gt;
msgid &amp;quot;Recommended&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32002&amp;quot;&lt;br /&gt;
msgid &amp;quot;Random Items&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# empty string with id 32003&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32004&amp;quot;&lt;br /&gt;
msgid &amp;quot;Randomize time (minutes)&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32005&amp;quot;&lt;br /&gt;
msgid &amp;quot;Use season folders&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a format defined by [https://www.gnu.org/software/gettext/ GNU gettext] but adapted in a very specific way by Kodi. The blocks of 3 settings in the example above are defined by GNU gettext as:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &#039;&#039;context&#039;&#039;&lt;br /&gt;
 msgid &#039;&#039;untranslated-string&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translated-string&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Where the text is defined by &#039;&#039;untranslated-string&#039;&#039; and &#039;&#039;context&#039;&#039; serves to differentiate identical values.&lt;br /&gt;
&lt;br /&gt;
Take note, in Kodi, these are used as follows:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &amp;quot;#&#039;&#039;label_id&#039;&#039;&amp;quot;&lt;br /&gt;
 msgid &#039;&#039;label_text&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;label_id&#039;&#039; is a numeric ID. These IDs are reserved by Kodi:&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
and are used in [[Add-on_settings_conversion|settings.xml]] to label settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;label_text&#039;&#039; defines the English text for the label.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;translation&#039;&#039; is empty for &amp;quot;en_GB&amp;quot; labels, and the translation for other languages with msgid retaining the English text.&lt;br /&gt;
&lt;br /&gt;
The important thing is that you cannot refer to the label with msgid in the settings.py file, you need to use the &#039;&#039;label_id&#039;&#039; which must be encoded in msgctxt as above.&lt;br /&gt;
&lt;br /&gt;
You can of course edit .po files in a text editor or with a specialist editor. There is a tool that will help converting old settings.xml files to the settings.po format:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/ronie/script.language-convert&lt;br /&gt;
&lt;br /&gt;
==== Layout of the language folders ====&lt;br /&gt;
&lt;br /&gt;
Kodi loads the strings.po file depending on the set interface language. Should it find a matching language it will try to load that strings.po. If not available it will always fall back to English (United Kingdom).&lt;br /&gt;
For this to work you will need to place the strings.po in the correctly named folder depending on the language. These folders use &amp;quot;language-country&amp;quot; naming scheme. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Add-ons:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/resources/language/resource.language.en_gb/strings.po&lt;br /&gt;
/resources/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/resources/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Skins:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/language/resource.language.en_gb/strings.po&lt;br /&gt;
/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Please use lower case for folder and file names.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
An extensive example list of used languages can be found here https://github.com/xbmc/xbmc/tree/master/addons/skin.estuary/language&lt;br /&gt;
&lt;br /&gt;
==== Layout of the old strings.xml file ====&lt;br /&gt;
&lt;br /&gt;
{{warning|1=Strings.xml support was completely removed from v19 Matrix. Addons should update and comply to the strings.po file from now on.}} &lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;strings&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32001&amp;quot;&amp;gt;Recommended&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32002&amp;quot;&amp;gt;Random Items&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32003&amp;quot;&amp;gt;Only unplayed&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32004&amp;quot;&amp;gt;Randomize time (minutes)&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32005&amp;quot;&amp;gt;Use season folders&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32006&amp;quot;&amp;gt;Use timer&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32007&amp;quot;&amp;gt;After database update&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32008&amp;quot;&amp;gt;Update method&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32009&amp;quot;&amp;gt;Recent Items&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/strings&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each string is enclosed in a &amp;lt;string&amp;gt; tag. It contains a tag named id=&amp;quot;32001&amp;quot; with a number Kodi uses to reference a string internally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint: Multi-Line Text-Values&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want your text-values to span multiple lines, you can insert a new line character [br] in your tag. Although we highly discourage this as it could cause skin problems as not all text boxes have enough room to display these.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;strings&amp;gt;&lt;br /&gt;
       &amp;lt;string id=&amp;quot;32001&amp;quot;&amp;gt;&amp;lt;value&amp;gt;This will be on the first line[br]And this will be on the second line&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/strings&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The encoding attribute of the XML header sets the charset the file is encoded with. See List of charsets of possible values.&lt;br /&gt;
If you don&#039;t know what charset your language uses please follow [http://www.science.co.il/Language/Locale-Codes.asp this link] to find out.&lt;br /&gt;
&lt;br /&gt;
=== String ID range ===&lt;br /&gt;
&lt;br /&gt;
Follow the specified string ID range&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
== Adding a new language to Kodi ==&lt;br /&gt;
&lt;br /&gt;
{{see|Language portal}}&lt;br /&gt;
&lt;br /&gt;
== Maintaining a language ==&lt;br /&gt;
The English (UK) language file ([https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po]) is the master for all language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
From time to time the English (UK) language file changes. This will instantly be automatically updated at Weblate translation pages.&lt;br /&gt;
&lt;br /&gt;
== Related articles in the Kodi online manual ==&lt;br /&gt;
* [[Translations|Translations in Kodi]]&lt;br /&gt;
* [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
* [[List_of_supported_charsets|List of Supported Charsets]]&lt;br /&gt;
* [[List of language codes (ISO-639:1988)]]&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
Kodi uses UTF-8 as internal character encoding. Please make sure if you add new features to Kodi which depend on external data to convert these to UTF-8 if they aren&#039;t already. Use the languagefile from branches/linuxport, since we merge that file into trunk.&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Skin development]]&lt;br /&gt;
[[Category:Languages|*]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_portal&amp;diff=241856</id>
		<title>Language portal</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_portal&amp;diff=241856"/>
		<updated>2022-04-13T14:06:38Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&lt;br /&gt;
= Languages =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Language_support|Language Support]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_language_codes_(ISO-639:1988)|Language Codes - (ISO-639)]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Translations =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translations|Translations in {{kodi}}]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for users and translators, detailing how to translate Kodi and other add-ons into native languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
A full introduction is made to our translation system at Weblate.&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translating_add-ons|Translating your Add-on]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for add-on developers, detailing how to add your add-on, skin etc. to our translation system at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure to read the best practices guide, as many errors and merge conflicts can be avoided by following these steps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Fonts =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Fonts|Using Fonts]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_supported_charsets|Supported Character Sets]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Interface/Regional|Change {{kodi}} language and regional settings]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Player/Language|Change Audio and Subtitle Languages]]}}&#039;&#039;&#039;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_portal&amp;diff=241855</id>
		<title>Language portal</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_portal&amp;diff=241855"/>
		<updated>2022-04-13T14:05:44Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
__NONUMBEREDHEADINGS__&lt;br /&gt;
&lt;br /&gt;
= Languages =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Language_support|Language Support]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:language_globe_icon.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_language_codes_(ISO-639:1988)|Language Codes - (ISO-639)]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Translations =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translations|Translations in {{kodi}}]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for users and translators, detailing how to translate Kodi and other add-ons into native languages.&amp;lt;br/&amp;gt;&lt;br /&gt;
A full introduction is made to our translation system at Weblate.&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Translation - Noun project 987.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Translating_add-ons|Translating your Add-on]]}}&#039;&#039;&#039;&lt;br /&gt;
This page is mostly for add-on developers, detailing how to add your add-on, skin etc. to our translation system at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure to read the best practices guide, as many errors and merge conflicts can be avoided by following these steps.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Fonts =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Fonts|Using Fonts]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Crystal Clear app fonts.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[List_of_supported_charsets|Supported Character Sets]]}}&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Interface/Regional|Change {{kodi}} language and regional settings]]}}&#039;&#039;&#039;&lt;br /&gt;
 | style=&amp;quot;width: 2%;&amp;quot; |&lt;br /&gt;
 | style=&amp;quot;width: 5%; vertical-align:top;&amp;quot; | [[File:Thumbnail-symbol-transparent.png|40px|left]]&lt;br /&gt;
 | style=&amp;quot;width: 44%; vertical-align:top;&amp;quot; |&#039;&#039;&#039;{{resize|1.3em| [[Settings/Player/Language|Change Audio and Subtitle Languages]]}}&#039;&#039;&#039;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Karellen]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241854</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241854"/>
		<updated>2022-04-13T13:54:49Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&amp;lt;br/&amp;gt;&lt;br /&gt;
Required workflows are automatically offered to your add-on repository by pull request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241853</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241853"/>
		<updated>2022-04-13T13:54:41Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised. &lt;br /&gt;
&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate strings.po files. Due to that the way how translations are handled has been changed, too.&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
You can create a new account or use an existing Google, Facebook or Github account.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&amp;lt;br/&amp;gt;&lt;br /&gt;
It depends how many translations are sone for a specific language, but usually new versions are released once a month.&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241852</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241852"/>
		<updated>2022-04-13T13:53:50Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Sync time schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised. &lt;br /&gt;
&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate strings.po files. Due to that the way how translations are handled has been changed, too.&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
You can create a new account or use an existing Google, Facebook or Github account.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&amp;lt;br/&amp;gt;&lt;br /&gt;
It depends how many translations are sone for a specific language, but usually new versions are released once a month.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241851</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241851"/>
		<updated>2022-04-13T13:51:18Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Weblate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised. &lt;br /&gt;
&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate strings.po files. Due to that the way how translations are handled has been changed, too.&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
You can create a new account or use an existing Google, Facebook or Github account.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241850</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241850"/>
		<updated>2022-04-13T13:49:58Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Weblate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised. &lt;br /&gt;
&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate strings.po files. Due to that the way how translations are handled has been changed, too.&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241849</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241849"/>
		<updated>2022-04-13T13:49:24Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Weblate */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised. &lt;br /&gt;
&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate strings.po files. Due to that the way how translations are handled has been changed, too.&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Addon developers should read this page for information on how to translate add-ons: [[Translating_add-ons|Translating your add-on]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
So if you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241848</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241848"/>
		<updated>2022-04-13T13:47:53Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Workflows and scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&amp;lt;br/&amp;gt;&lt;br /&gt;
Required workflows are automatically offered to your add-on repository by pull request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241847</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241847"/>
		<updated>2022-04-13T13:47:37Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Workflows and scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&amp;lt;br/&amp;gt;&lt;br /&gt;
Required workflows are automatically offered to your add&#039;on repository by pull request.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translations&amp;diff=241846</id>
		<title>Translations</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translations&amp;diff=241846"/>
		<updated>2022-04-13T13:42:48Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{see also|Add-on development}}&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
In the development cycle from Eden (V11) to Frodo (V12) the translation system has been revised. &lt;br /&gt;
&lt;br /&gt;
The former strings.xml file has been superseeded by the appropriate strings.po files. Due to that the way how translations are handled has been changed, too.&lt;br /&gt;
&lt;br /&gt;
= Weblate =&lt;br /&gt;
The whole translation system has been moved to [https://kodi.weblate.cloud/ Weblate].&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
So if you want to help translating Kodi into your native language, first thing you need to do is to [https://kodi.weblate.cloud/accounts/register/ sign up at Weblate].&amp;lt;br/&amp;gt;  &lt;br /&gt;
Please visit [https://forum.kodi.tv/showthread.php?tid=363132 this forum post] to let us know which language you would like to translate.&amp;lt;br/&amp;gt;  &lt;br /&gt;
Once added to a langage team, you can start translating immediately.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
== Profile ==&lt;br /&gt;
In the top right, you can find your profile settings:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate_profile_settings.png|300px|Weblate profile settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Language tab&#039;&#039;&#039; you can select the interface language, the language you can translate to and your secondary languages:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate language settings new.png|900px|Weblate language settings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
In the &#039;&#039;&#039;Notifications tab&#039;&#039;&#039; you can select your watched projects.&amp;lt;br/&amp;gt;&lt;br /&gt;
Those projects can be selected in the top Projects menu.&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;We recommend selecting all projects to have easy access to all components.&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate watched.png|900px|Weblate watched projects settings]]  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you are ready to translate components:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate.png|900px|Weblate main screen]]&lt;br /&gt;
&amp;lt;br/&amp;gt;  &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Translating Kodi and other components ==&lt;br /&gt;
&#039;&#039;Note: Please do not download files, modify them and upload again! Always translate components and strings inside Weblate!&#039;&#039;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Ok, let&#039;s get to work!&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Search that part of the project that needs updating.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can see the percentage of the translations, untranslated strings / words / characters:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate components.png|900px|Components at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
You might note that there is some untranslated strings in &amp;quot;Kodi core/kodi main&amp;quot;.&amp;lt;br/&amp;gt;&lt;br /&gt;
So we click either on the pencil to the left or on the language label to translate it:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate component hl close.png|700px|Translate buttons highlighted]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
The next screen will show you all information on the chosen language.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
We recommend to take care of most alerts: BBcode markup, mismatched \n, mismatching line breaks, XML markup, starting spaces, trailing spaces, double space, unchanged translations.&amp;lt;br/&amp;gt;&lt;br /&gt;
Keeping alerts might break the file and ultimately lead to Kodi crashing.&amp;lt;br/&amp;gt;&lt;br /&gt;
Alerts can be cleared when selecting the string with the alert.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate1.png|900px|Translate window inside Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you want to translate the component, &#039;&#039;&#039;&amp;quot;Not translated strings&amp;quot;&#039;&#039;&#039; is where to go.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Clicking any item in the previous image will take you here:&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate.png|900px]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00e235&amp;quot;&amp;gt;&#039;&#039;&#039;SOURCE STRING COMMENT:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The developers can create useful comments for the string, e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;GLOSSARY:&#039;&#039;&#039;&amp;lt;/span&amp;gt; View the glossary entries matching your current string. You can also add new glossary entries.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#de00ff&amp;quot;&amp;gt;&#039;&#039;&#039;NBS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; &amp;quot;No-break space&amp;quot; is a character used if you can&#039;t translate the source string into your native language. It&#039;s useful for languages that don&#039;t have certain words. It will not take up any character space and will not use the source string.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#00b4ff&amp;quot;&amp;gt;&#039;&#039;&#039;REVIEW STATE:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Reviewers/coordinators can approve strings or mark them for editing.&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:orange&amp;quot;&amp;gt;&#039;&#039;&#039;AUTOMATIC SUGGESTIONS:&#039;&#039;&#039;&amp;lt;/span&amp;gt; Matching strings and translations from other components will be listed here. This is great for keeping consistency. We recommend keeping this tab open when translating.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate translate colors.png|1000px|Colors explaining Weblate translate window]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Other languages tab&#039;&#039;&#039; is great for looking at the current string translated into other languages. Works well for closely related languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate other languages.png|900px|Other languages tab at Weblate]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Comments tab&#039;&#039;&#039;: Here you can make comments on the current string for other translators, reviewers and developers to read.&amp;lt;br/&amp;gt;&lt;br /&gt;
You can also make source string comments or suggestions for changes to the string.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments2.png|900px|Comments for strings]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Useful hints =&lt;br /&gt;
This part shows some additional information for developers and translators to make things more easy. So it&#039;s worth taking a look.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Details &amp;amp; Comments ==&lt;br /&gt;
The developers can set special marks in the strings.po file to give a useful comment on that string. e.g. what it exactly does or where it can be found in the GUI.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[[File:Weblate comments.png|900px|Comments in a string]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the source file it looks like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
#. play GUI sounds&lt;br /&gt;
#: xbmc/settings/GUISettings.cpp&lt;br /&gt;
msgctxt &amp;quot;#34122&amp;quot;&lt;br /&gt;
msgid &amp;quot;Always&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With #. we can add a helper comment or context to help translators understand the meaning or usage of string.&lt;br /&gt;
&lt;br /&gt;
with #: we can specify where the string is used. Sometimes this could also be a useful info.&lt;br /&gt;
&lt;br /&gt;
= Contact and support =&lt;br /&gt;
If you have problems with Weblate your first person to contact should be the coordinator of your language!&lt;br /&gt;
&lt;br /&gt;
If you have more general questions you might [https://forum.kodi.tv/forumdisplay.php?fid=90 head over to the forums and post your question in the translations section].&amp;lt;br/&amp;gt;&lt;br /&gt;
Gade and others can help you there.&lt;br /&gt;
&lt;br /&gt;
= Sync time schedule =&lt;br /&gt;
Changes to the main source en_gb file are synced instantly from Github to Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations are pushed from Weblate to Github every 5 days (default, but can be configured) if any translations are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For Kodi language add-ons, new versions are released every time a Weblate pull request is merged.&lt;br /&gt;
&lt;br /&gt;
= Syntax verification =&lt;br /&gt;
For keeping the strings correctly formatted, we do a constant syntax verification at all times.&amp;lt;br/&amp;gt;&lt;br /&gt;
Changes are either done at Weblate or by pull request to the upstream repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
{{top}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development|T]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241845</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241845"/>
		<updated>2022-04-13T13:42:11Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Best practices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241844</id>
		<title>Translating add-ons</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Translating_add-ons&amp;diff=241844"/>
		<updated>2022-04-13T13:41:34Z</updated>

		<summary type="html">&lt;p&gt;Gade: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|Language portal}}&lt;br /&gt;
&lt;br /&gt;
= Submit your add-on or skin for translation =&lt;br /&gt;
We encourage all developers with addons in the official Kodi add-on repo to submit their addon for translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Handling of translations for your add-on will become much more simple, as most things are automated.&amp;lt;br/&amp;gt;&lt;br /&gt;
Weblate will get updated instantly whenever you add or remove a translation from your source en_gb file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Translations can be synced to your upstream repository whenever you wish (default is 5 days) either by pull request or direct push.&amp;lt;br/&amp;gt;&lt;br /&gt;
All languages at Weblate will be kept in sync with the en_gb source file.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Summary, description and disclaimer can be automatically synced between addon.xml and language files either by pull request or direct push whenever changes are made.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
We require the following info:&lt;br /&gt;
* URL to your repo at Github/Gitlab&lt;br /&gt;
* Branch&lt;br /&gt;
* Would you like pull requests or direct pushes from Weblate? (Pull requests are safest, direct pushes are easiest.)&lt;br /&gt;
* How often would you like pull requests/direct pushes? Default is 5 days, but it&#039;s totally up to you.&lt;br /&gt;
* Do you want a version bump in addon.xml?&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
For your main source en_gb file to get synced with Weblate, you must add this webhook to your repository for the push event:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;https://kodi.weblate.cloud/hooks/github&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:Webhook.png|600px|webhook for Weblate]]&lt;br /&gt;
&lt;br /&gt;
If direct pushes are wanted, you need to add Github user [https://github.com/weblate &amp;quot;weblate&amp;quot;] as collaborator.&amp;lt;br/&amp;gt;&lt;br /&gt;
This user will automatically accept any collaboration within 5 minutes.&amp;lt;br/&amp;gt;&lt;br /&gt;
If pull requests are the preferred method, Weblate will push to the same pull request until merged or closed.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://forum.kodi.tv/showthread.php?tid=359836 Please visit this forum post for more information.]&lt;br /&gt;
&lt;br /&gt;
= Best practices =&lt;br /&gt;
[[Translations#Submit_your_add-on_or_skin_for_translation|Submit your add-on or skin for translation]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{updated|19}}&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Languages]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Weblate&amp;diff=241806</id>
		<title>Weblate</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Weblate&amp;diff=241806"/>
		<updated>2022-04-05T08:53:29Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Best practices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Best practices =&lt;br /&gt;
[[Translations#Submit_your_add-on_or_skin_for_translation|Submit your add-on or skin for translation]]&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
* Only change the content of en_gb source language file.&lt;br /&gt;
:Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
:Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
:So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
* Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
:These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
:They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Language_support&amp;diff=241805</id>
		<title>Language support</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Language_support&amp;diff=241805"/>
		<updated>2022-04-05T08:44:25Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Maintaining a language */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Development]]{{l2|[[Add-on development]]}}}}&lt;br /&gt;
&lt;br /&gt;
{{cleanup}}&lt;br /&gt;
The following page explains exactly how to add a new language translation to Kodi, and how to maintain/update an existing language file in Kodi.&amp;lt;br/&amp;gt;&lt;br /&gt;
English (United Kingdom) is the default language of Kodi so it is the English language in the Git repository that is always up-to-date.&amp;lt;br/&amp;gt;&lt;br /&gt;
Please always base your translations of the latest English language file from Git. The latest language files for Kodi can be found and downloaded [https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po here (link)].&lt;br /&gt;
&lt;br /&gt;
=== Language add-ons ===&lt;br /&gt;
By default Kodi only includes one language which is English (united Kingdom). All other languages have been moved to [https://kodi.wiki/view/Category:Language_add-ons individual language add-ons] which are available form our Kodi repository for download and install. They are auto update by Team Kodi once in a while and pushed to our repository from which you will receive these updates depending on what language(s) you have installed.&lt;br /&gt;
&lt;br /&gt;
=== What is langinfo.xml ===&lt;br /&gt;
The langinfo.xml file contains language and region specific localization settings used internally by Kodi. Basically it is the default [http://en.wikipedia.org/wiki/Code_page code page] Kodi uses for this language file.&lt;br /&gt;
&lt;br /&gt;
==== Layout of a langinfo.xml file ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;language&amp;gt;&lt;br /&gt;
    &amp;lt;charsets&amp;gt;&lt;br /&gt;
      &amp;lt;gui&amp;gt;GB2312&amp;lt;/gui&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;GB2312&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/charsets&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;dvd&amp;gt;&lt;br /&gt;
      &amp;lt;menu&amp;gt;cn&amp;lt;/menu&amp;gt;&lt;br /&gt;
      &amp;lt;audio&amp;gt;cn&amp;lt;/audio&amp;gt;&lt;br /&gt;
      &amp;lt;subtitle&amp;gt;cn&amp;lt;/subtitle&amp;gt;&lt;br /&gt;
    &amp;lt;/dvd&amp;gt;&lt;br /&gt;
  &amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;charset&amp;gt; section:&lt;br /&gt;
&amp;lt;gui&amp;gt;: Specifies the character encoding of everything within Kodi that is not unicode. E.g. id3 tags with none unicode encoding.&lt;br /&gt;
&amp;lt;subtitle&amp;gt;: Default character encoding of subtitles when using a TTF (True-Type-Font).&lt;br /&gt;
Choose one encoding for each in the list below. The values may differ if you like.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The &amp;lt;dvd&amp;gt; section:&lt;br /&gt;
Defines the default languages for DVD-Video menu, audio and subtitle language for the [[VideoPlayer]]. Choose one for each entry out of the list of ISO-639 language abbreviations. If the DVD-Video you are playing does not support the language that you specified then it will default to English.&lt;br /&gt;
&lt;br /&gt;
=== What is strings.po ===&lt;br /&gt;
This files contains all strings displayed in the user interface of Kodi.&lt;br /&gt;
&lt;br /&gt;
==== Layout of the strings.po file ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
# Kodi Media Center language file&lt;br /&gt;
# Addon Name: Skin Widgets&lt;br /&gt;
# Addon id: service.skin.widgets&lt;br /&gt;
# Addon Provider: Martijn, phil65&lt;br /&gt;
msgid &amp;quot;&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&amp;quot;Project-Id-Version: Kodi Addons\n&amp;quot;&lt;br /&gt;
&amp;quot;Report-Msgid-Bugs-To: translations@kodi.tv\n&amp;quot;&lt;br /&gt;
&amp;quot;POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n&amp;quot;&lt;br /&gt;
&amp;quot;Last-Translator: Kodi Translation Team\n&amp;quot;&lt;br /&gt;
&amp;quot;Language-Team: English (https://kodi.weblate.cloud/languages/en_gb/)\n&amp;quot;&lt;br /&gt;
&amp;quot;MIME-Version: 1.0\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Type: text/plain; charset=UTF-8\n&amp;quot;&lt;br /&gt;
&amp;quot;Content-Transfer-Encoding: 8bit\n&amp;quot;&lt;br /&gt;
&amp;quot;Language: en\n&amp;quot;&lt;br /&gt;
&amp;quot;Plural-Forms: nplurals=2; plural=(n != 1);\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32001&amp;quot;&lt;br /&gt;
msgid &amp;quot;Recommended&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32002&amp;quot;&lt;br /&gt;
msgid &amp;quot;Random Items&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# empty string with id 32003&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32004&amp;quot;&lt;br /&gt;
msgid &amp;quot;Randomize time (minutes)&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
msgctxt &amp;quot;#32005&amp;quot;&lt;br /&gt;
msgid &amp;quot;Use season folders&amp;quot;&lt;br /&gt;
msgstr &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is a format defined by [https://www.gnu.org/software/gettext/ GNU gettext] but adapted in a very specific way by Kodi. The blocks of 3 settings in the example above are defined by GNU gettext as:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &#039;&#039;context&#039;&#039;&lt;br /&gt;
 msgid &#039;&#039;untranslated-string&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translated-string&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Where the text is defined by &#039;&#039;untranslated-string&#039;&#039; and &#039;&#039;context&#039;&#039; serves to differentiate identical values.&lt;br /&gt;
&lt;br /&gt;
Take note, in Kodi, these are used as follows:&lt;br /&gt;
&lt;br /&gt;
 msgctxt &amp;quot;#&#039;&#039;label_id&#039;&#039;&amp;quot;&lt;br /&gt;
 msgid &#039;&#039;label_text&#039;&#039;&lt;br /&gt;
 msgstr &#039;&#039;translation&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
where &#039;&#039;label_id&#039;&#039; is a numeric ID. These IDs are reserved by Kodi:&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
and are used in [[Add-on_settings_conversion|settings.xml]] to label settings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;label_text&#039;&#039; defines the English text for the label.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;translation&#039;&#039; is empty for &amp;quot;en_GB&amp;quot; labels, and the translation for other languages with msgid retaining the English text.&lt;br /&gt;
&lt;br /&gt;
The important thing is that you cannot refer to the label with msgid in the settings.py file, you need to use the &#039;&#039;label_id&#039;&#039; which must be encoded in msgctxt as above.&lt;br /&gt;
&lt;br /&gt;
You can of course edit .po files in a text editor or with a specialist editor. There is a tool that will help converting old settings.xml files to the settings.po format:&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/ronie/script.language-convert&lt;br /&gt;
&lt;br /&gt;
==== Layout of the language folders ====&lt;br /&gt;
&lt;br /&gt;
Kodi loads the strings.po file depending on the set interface language. Should it find a matching language it will try to load that strings.po. If not available it will always fall back to English (United Kingdom).&lt;br /&gt;
For this to work you will need to place the strings.po in the correctly named folder depending on the language. These folders use &amp;quot;language-country&amp;quot; naming scheme. &lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Add-ons:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/resources/language/resource.language.en_gb/strings.po&lt;br /&gt;
/resources/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/resources/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Skins:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/language/resource.language.en_gb/strings.po&lt;br /&gt;
/language/resource.language.fr_fr/strings.po&lt;br /&gt;
/language/resource.language.it_it/strings.po&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Please use lower case for folder and file names.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
An extensive example list of used languages can be found here https://github.com/xbmc/xbmc/tree/master/addons/skin.estuary/language&lt;br /&gt;
&lt;br /&gt;
==== Layout of the old strings.xml file ====&lt;br /&gt;
&lt;br /&gt;
{{warning|1=Strings.xml support was completely removed from v19 Matrix. Addons should update and comply to the strings.po file from now on.}} &lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;strings&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32001&amp;quot;&amp;gt;Recommended&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32002&amp;quot;&amp;gt;Random Items&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32003&amp;quot;&amp;gt;Only unplayed&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32004&amp;quot;&amp;gt;Randomize time (minutes)&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32005&amp;quot;&amp;gt;Use season folders&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32006&amp;quot;&amp;gt;Use timer&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32007&amp;quot;&amp;gt;After database update&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32008&amp;quot;&amp;gt;Update method&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string id=&amp;quot;32009&amp;quot;&amp;gt;Recent Items&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/strings&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each string is enclosed in a &amp;lt;string&amp;gt; tag. It contains a tag named id=&amp;quot;32001&amp;quot; with a number Kodi uses to reference a string internally.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hint: Multi-Line Text-Values&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
If you want your text-values to span multiple lines, you can insert a new line character [br] in your tag. Although we highly discourage this as it could cause skin problems as not all text boxes have enough room to display these.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
    &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
    &amp;lt;strings&amp;gt;&lt;br /&gt;
       &amp;lt;string id=&amp;quot;32001&amp;quot;&amp;gt;&amp;lt;value&amp;gt;This will be on the first line[br]And this will be on the second line&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/strings&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The encoding attribute of the XML header sets the charset the file is encoded with. See List of charsets of possible values.&lt;br /&gt;
If you don&#039;t know what charset your language uses please follow [http://www.science.co.il/Language/Locale-Codes.asp this link] to find out.&lt;br /&gt;
&lt;br /&gt;
=== String ID range ===&lt;br /&gt;
&lt;br /&gt;
Follow the specified string ID range&lt;br /&gt;
&lt;br /&gt;
* strings 30000 thru 30999 reserved for plugins and plugin settings&lt;br /&gt;
* strings 31000 thru 31999 reserved for skins&lt;br /&gt;
* strings 32000 thru 32999 reserved for scripts&lt;br /&gt;
* strings 33000 thru 33999 reserved for common strings used in add-ons&lt;br /&gt;
&lt;br /&gt;
== Adding a new language to Kodi ==&lt;br /&gt;
&lt;br /&gt;
{{see|Translations}}&lt;br /&gt;
&lt;br /&gt;
== Maintaining a language ==&lt;br /&gt;
The English (UK) language file ([https://github.com/xbmc/xbmc/blob/master/addons/resource.language.en_gb/resources/strings.po]) is the master for all language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
From time to time the English (UK) language file changes. This will instantly be automatically updated at Weblate translation pages.&lt;br /&gt;
&lt;br /&gt;
== Related articles in the Kodi online manual ==&lt;br /&gt;
* [[List_of_supported_charsets|List of Supported Charsets]]&lt;br /&gt;
* [[List of language codes (ISO-639:1988)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes for developers ==&lt;br /&gt;
Kodi uses UTF-8 as internal character encoding. Please make sure if you add new features to Kodi which depend on external data to convert these to UTF-8 if they aren&#039;t already. Use the languagefile from branches/linuxport, since we merge that file into trunk.&lt;br /&gt;
&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Skin development]]&lt;br /&gt;
[[Category:Languages|*]]&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Weblate&amp;diff=241766</id>
		<title>Weblate</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Weblate&amp;diff=241766"/>
		<updated>2022-03-22T10:51:15Z</updated>

		<summary type="html">&lt;p&gt;Gade: /* Best practices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Best practices =&lt;br /&gt;
[[Translations#Submit_your_add-on_or_skin_for_translation|Submit your add-on or skin for translation]]&lt;br /&gt;
&lt;br /&gt;
Only change the content of en_gb source language file.&amp;lt;br/&amp;gt;&lt;br /&gt;
Never change anything in other language files, as Weblate will handle syncing and maintaining of all strings for all languages.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If you have an open Weblate pull request, always merge that pull request before any other.&amp;lt;br/&amp;gt;&lt;br /&gt;
Failing to do so could result in merge conflicts at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Also merge any open Weblate pull request before changing or adding translations to en_gb source file.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
If doing a minor change for an existing source language (en_gb) string, Weblate will most likely treat this as a completely new string.&amp;lt;br/&amp;gt;&lt;br /&gt;
That means that all existing translations will get removed for that string.&amp;lt;br/&amp;gt;&lt;br /&gt;
So be careful before you change existing strings.&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Sometimes Weblate will add commented out translations at the end of language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
These &#039;&#039;&#039;should not&#039;&#039;&#039; be removed and are harmless.&amp;lt;br/&amp;gt;&lt;br /&gt;
They are kept as part of translation memory and will benefit translators in a number of ways.&lt;br /&gt;
&lt;br /&gt;
= Workflows and scripts =&lt;br /&gt;
We offer several workflows to help integrate Weblate translations into your add-ons.&lt;br /&gt;
&lt;br /&gt;
== sync-addon-metadata-translations.yml ==&lt;br /&gt;
This workflow will sync metadata (description, summary, disclaimer etc.) between addon.xml and the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It will add this metadata from addon.xml to each language file to allow translation at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Whenever changes are done to either addon.xml or any language file, the workflow will run and sync changes both ways.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;amt-sync&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;amt-sync&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This workflow is required for proper Weblate translations.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== increment_version.py ==&lt;br /&gt;
This workflow will bump the version number in your addon.xml file whenever changes are done to the language files.&amp;lt;br/&amp;gt;&lt;br /&gt;
It can be configured to create a changelog entry as well.&amp;lt;br/&amp;gt;&lt;br /&gt;
Either a pull request or direct commit can be created.&lt;br /&gt;
&lt;br /&gt;
An &#039;&#039;&#039;&#039;&#039;inc-ver&#039;&#039;&#039;&#039;&#039; branch is created by the workflow where changes are pushed before a pull request is created.&amp;lt;br/&amp;gt;&lt;br /&gt;
Once the pull request is merged the branch can be safely deleted.&amp;lt;br/&amp;gt;&lt;br /&gt;
Make sure branch protection is disabled for &#039;&#039;inc-ver&#039;&#039; branch and that force pushing is allowed.&lt;br /&gt;
&lt;br /&gt;
= Weblate configuration and add-ons =&lt;br /&gt;
The text in your Weblate pull request or direct commit can be changed exactly as you see fit.&lt;br /&gt;
&lt;br /&gt;
We enable several add-ons for your component(s) at Weblate.&amp;lt;br/&amp;gt;&lt;br /&gt;
Most of them will be enabled with default configuration, but some of them can be configured to your preference.&lt;br /&gt;
&lt;br /&gt;
==Squash Git commits==&lt;br /&gt;
This add-on will squash all Weblate commits into a single one.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also create one commit per language or per file if wanted.&lt;br /&gt;
&lt;br /&gt;
==Customize gettext output==&lt;br /&gt;
Default for this add-on is to only wrap lines at newlines.&amp;lt;br/&amp;gt;&lt;br /&gt;
But it can also wrap lines at 77 characters and at newlines or do no line wrapping.&lt;/div&gt;</summary>
		<author><name>Gade</name></author>
	</entry>
</feed>