J3.x

Het ontwikkelen van een MVC Component - Toevoegen van taalbeheer

From Joomla! Documentation

< J3.x:Developing an MVC Component
This page is a translated version of the page J3.x:Developing an MVC Component/Adding language management and the translation is 100% complete.

Other languages:
العربية • ‎English • ‎español • ‎français • ‎Nederlands
Copyedit.png
This Page Needs Your Help

This page is tagged because it NEEDS REVIEW. You can help the Joomla! Documentation Wiki by contributing to it.
More pages that need help similar to this one are here. NOTE-If you feel the need is satistified, please remove this notice.


Joomla! 
3.x
Handleiding
Het ontwikkelen van een MVC component


Dit is een reeks van artikelen met handleidingen over het ontwikkelen van een Model-View-Controller Component voor Joomla! versieJoomla 3.x.

Begin met de Introductie en navigeer door de artikelen van de reeks door middel van de navigatieknop onderaan of het vak rechts (Artikelen in deze reeks).



Inleiding

Deze handleiding is een onderdeel van de Het ontwikkelen van een MVC Component voor Joomla! 3.2 uitleg. Het is aan te raden om de vorige delen van deze handleiding te lezen voordat u dit onderdeel leest.

U kunt een video bekijken die gerelateerd is aan deze stap in de handleiding op Stap 8, Toevoegen van taalbeheer.

Joomla! 3.2 beheert talen voor componenten in vier verschillende situaties:

  • weergave van een component op het publieke deel van de site
  • beheren van een component in het beheergedeelte
  • beheren van menu's in het beheergedeelte
  • installatie van een component

Joomla! 3.2 gebruikt twee verschillende locaties voor de taalmappen:

  • een in administrator/language of language
  • een in the componentmap (administrator/components/*component*/language of components/*component*/language)

Het is afhankelijk van hoe de component geïnstalleerd wordt.

Toevoegen van vertalingen in het publieke deel van de site

Maak met de bestandsmanager en editor van uw voorkeur een bestand site/language/en-GB/en-GB.com_helloworld.ini. Dit bestand zal de vertalingen bevatten voor het publieke gedeelte. Op dit moment is het bestand leeg.

site/language/en-GB/en-GB.com_helloworld.ini

Op dit moment bevat dit bestand geen taalstrings.

Toevoegen van vertalingen bij het beheren van de component

Maak met uw bestandsmanager en editor van uw voorkeur een bestand admin/language/en-GB/en-GB.com_helloworld.ini. Dit bestand zal vertalingen voor het beheergedeelte bevatten.

admin/language/en-GB/en-GB.com_helloworld.ini

; Joomla! Project
; Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
; Note : All ini files need to be saved as UTF-8

COM_HELLOWORLD_NUM="#"
COM_HELLOWORLD_PUBLISHED="Published"
COM_HELLOWORLD_HELLOWORLDS_NAME="Name"
COM_HELLOWORLD_ID="Id"

COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_DESC="This message will be displayed"
COM_HELLOWORLD_HELLOWORLD_FIELD_GREETING_LABEL="Message"
COM_HELLOWORLD_HELLOWORLD_HEADING_GREETING="Greeting"
COM_HELLOWORLD_HELLOWORLD_HEADING_ID="Id"

Toevoegen van vertalingen bij het menubeheer in het beheergedeelte

Maak met uw bestandsmanager en editor van uw voorkeur een bestand admin/language/en-GB/en-GB.com_helloworld.sys.ini. Dit bestand zal vertalingen voor het beheergedeelte bevatten.

admin/language/en-GB/en-GB.com_helloworld.sys.ini

; Joomla! Project
; Copyright (C) 2005 - 2015 Open Source Matters. All rights reserved.
; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php
; Note : All ini files need to be saved as UTF-8

COM_HELLOWORLD="Hello World!"
COM_HELLOWORLD_DESCRIPTION="This is the Hello World description"
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE="Hello World"
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC="This view displays a selected message"
COM_HELLOWORLD_MENU="Hello World!"

Taalbestanden locatie opties

Vanaf versie 1.7 zijn er 2 manieren om taalbestanden te installeren voor een extensie. Men kan een van beiden of een combinatie van beiden gebruiken.

De 1.5 manier zal de bestanden in de CORE taalmappen (ROOT/administrator/language/ en ROOT/language/) installeren. Sinds versie 1.6, voegt u de bestanden toe in een "language" map die in de root van de extensie wordt geïnstalleerd.

Zodoende kan een extensie een taalmap toevoegen met een .sys.ini die verschilt van de het bestand dat in de Joomla core taalmap is geïnstalleerd. (De laatste niet ingevoegd in die taalmap maar in root of iedere andere niet geïnstalleerde map.)

Zodoende kunnen 2 verschillende beschrijvingen worden weergeven: een van de sys.ini in de "language" map die wordt gebruikt als bericht nadat de installatie is voltooid, de andere (van de .ini) wordt gebruikt voor "normale" handelingen, zoals het bewerken van de extensie in het beheergedeelte. Dit kan behoorlijk nuttig zijn wanneer de installatie ook enkele scripts gebruikt en een andere waarde vereist als beschrijving.

Dit moet u weten!

Het sys.ini bestand wordt ook gebruikt om de naam van de extensie te vertalen in sommige gedeelten van het beheergedeelte en om vertalingen van het menu te bieden voor componenten.

Derhalve moet in de xml sinds 1.6 ingevoegd worden:

<files>
<[...]
<folder>language</folder>  // This folder HAS to include the right subfolders, i.e. language/en-GB/ ... language/fr-FR/
<filename>whatever</filename>
[...]
</files>

<administration>
    <files folder="admin">
        <[...]
        <folder>language</folder>
        <filename>whatever</filename>
        <[...]
    </files>
</administration>

en/of de (1.5 manier)

<languages folder="joomlacorelanguagefolders"> // If using another language folder for cleanliness. (Any folder name will fit.)
<language tag="en-GB">en-GB/en-GB.whatever.ini</language> // or
<language tag="en-GB">en-GB.whatever.ini</language> if no tagged subfolder
<language tag="en-GB">en-GB/en-GB.whatever.sys.ini</language> // or
<language tag="en-GB">en-GB.whatever.sys.ini</language> if no tagged subfolder
</languages>

of eenvoudig in de ROOT:

<languages>
<language tag="en-GB">en-GB.whatever.ini</language>
<language tag="en-GB">en-GB.whatever.sys.ini</language>
</languages>

Taalbestanden die gebruikt worden door het installatiescript tijdens de installatie van een component(de eerste installatie, niet een upgrade) moeten voldoen aan specifieke regels, beschreven in het artikel Specificatie van taalbestanden. Tijdens de eerste installatie wordt alleen het taalbestand in de component map (/administrator/components/com_helloworld/language) gebruikt indien aanwezig. Indien dit bestand alleen aangeboden wordt in de CORE taalmap (/administrator/language), wordt er geen vertaling weergegeven. Dit geldt ook voor KEYs die gebruikt worden in het manifest bestand.

Na upgraden of deinstalleren van de extensie (niet installeren), is het het sys.ini bestand, aanwezig in de basis taalmap van de extensie die het resultaat weergeeft van de installatie via de beschrijving key/waarde. Derhalve, indien aanwezig, heeft de sys.ini alsook de .ini geïnstalleerd in de CORE taalmap prioriteit boven de aanwezige bestanden in de basis taalmap van de extensie.

Voordelen van de extensie "language" map

Een van de voordelen van het installeren van de bestanden in de extensie "language" map is dat deze niet beïnvloed worden tijdens het updaten van een taalpakket.

Nog een voordeel is dat deze map meerdere talen kan bevatten (en-GB altijd, fr-FR, it-IT, enz.) zodat de gebruiker geen corresponderende taalpakketten hoeft te installeren. Dit is handig wanneer een gebruiker later een corresponderend pakket installeert.

Inpakken van de component

De inhoud van uw code map

Maak een gecomprimeerd bestand aan van deze map of download direct het archief en installeer het via Extensiebeheer van Joomla. U kunt een menu-item aanmaken voor deze component met behulp van het menubeheer in het beheergedeelte.

helloworld.xml

<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.0" method="upgrade">

	<name>COM_HELLOWORLD</name>
	<!-- The following elements are optional and free of formatting constraints -->
	<creationDate>January 2018</creationDate>
	<author>John Doe</author>
	<authorEmail>john.doe@example.org</authorEmail>
	<authorUrl>http://www.example.org</authorUrl>
	<copyright>Copyright Info</copyright>
	<license>License Info</license>
	<!--  The version string is recorded in the components table -->
	<version>0.0.8</version>
	<!-- The description is optional and defaults to the name -->
	<description>COM_HELLOWORLD_DESCRIPTION</description>

	<install> <!-- Runs on install -->
		<sql>
			<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
		</sql>
	</install>
	<uninstall> <!-- Runs on uninstall -->
		<sql>
			<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
		</sql>
	</uninstall>
	<update> <!-- Runs on update; New since J2.5 -->
		<schemas>
			<schemapath type="mysql">sql/updates/mysql</schemapath>
		</schemas>
	</update>

	<!-- Site Main File Copy Section -->
	<!-- Note the folder attribute: This attribute describes the folder
		to copy FROM in the package to install therefore files copied
		in this section are copied from /site/ in the package -->
	<files folder="site">
		<filename>index.html</filename>
		<filename>helloworld.php</filename>
		<filename>controller.php</filename>
		<folder>views</folder>
		<folder>models</folder>
	</files>

	<languages folder="site/language">
		<language tag="en-GB">en-GB/en-GB.com_helloworld.ini</language>
	</languages>

	<administration>
		<!-- Administration Menu Section -->
		<menu link='index.php?option=com_helloworld'>COM_HELLOWORLD_MENU</menu>
		<!-- Administration Main File Copy Section -->
		<!-- Note the folder attribute: This attribute describes the folder
			to copy FROM in the package to install therefore files copied
			in this section are copied from /admin/ in the package -->
		<files folder="admin">
			<!-- Admin Main File Copy Section -->
			<filename>index.html</filename>
			<filename>helloworld.php</filename>
			<filename>controller.php</filename>
			<!-- SQL files section -->
			<folder>sql</folder>
			<!-- tables files section -->
			<folder>tables</folder>
			<!-- models files section -->
			<folder>models</folder>
			<!-- views files section -->
			<folder>views</folder>
		</files>
		<languages folder="admin/language">
			<language tag="en-GB">en-GB/en-GB.com_helloworld.ini</language>
			<language tag="en-GB">en-GB/en-GB.com_helloworld.sys.ini</language>
		</languages>
	</administration>

</extension>

In dit helloworld.xml bestand worden taalbestanden geïnstalleerd in:

  • administrator/language voor het beheergedeelte (kijk naar de xml languages tag).
  • components/com_helloworld/language voor het website gedeelte (er zijn geen xml languages tags in het website gedeelte van de xml beschrijving file, maar de taalmap is ingevoegd).
Info non-talk.png
General Information

Maak alstublieft een pull request of issue aan op https://github.com/joomla/Joomla-3.2-Hello-World-Component voor enige foute code of een wijziging van de broncode op deze pagina.

Bijdragers