<?php

// h-source, a web software to build a community of people that want to share their hardware information.
// Copyright (C) 2010  Antonio Gallo (h-source-copyright.txt)
//
// This file is part of h-source
//
// h-source is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// h-source is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with h-source.  If not, see <http://www.gnu.org/licenses/>.

if (!defined('EG')) die('Direct access not allowed!');

class Lang
{
	public static $allowed = array('en','es','fr','it');
	public static $current = 'en';
	
	public static $complete = array(
		'en'	=>	'gb.png,English',
		'es'	=>	'es.png,Español',
		'fr'	=>	'fr.png,Français',
		'it'	=>	'it.png,Italiano',
	);

	public static $i18n = array(
		'it'	=>	array
			(
				"Search one device in the archive"	=>	"Cerca un dispositivo nell'archivio",
				"hardware type"		=>	"tipo di hardware",
				"the model name contains"	=>	"il nome del modello contiene",
				"List of issues"	=>	"Lista di questioni",
				"TITLE"				=>	"TITOLO",
				"TOPIC"				=>	"ARGOMENTO",
				"OPENED BY"			=>	"APERTO DA",
				"DATE"				=>	"DATA",
				"REPLIES"			=>	"MESSAGGI",
				"PRIORITY"			=>	"PRIORITÀ",
				"STATUS"			=>	"STATO",
				"You have to"		=>	"Devi eseguire il",
				"in order to submit an issue"	=>	"per poter aprire una nuova questione",
				"in order to add a message"	=> "per poter inviare un messaggio",
				"Description"		=>	"Descrizione",
				"Messages"			=>	"Messaggi",
				"this message has been deleted"	=>	"questo messaggio è stato cancellato",
				"in order to submit a message to this issue"	=>	"per aggiungere un messaggio a questa questione",
				"model name"		=>	"nome del modello",
				"model type"		=>	"tipo di device",
				"year of commercialization"	=>	"anno di commercializzazione",
				"Results of the search"		=>	"Risultati della ricerca",
				"page list"					=>	"pagine",
				"No devices found"			=>	"Non è stato trovato alcun device",
				"vendor"					=>	"marca",
				"compatibility"				=>	"compatibilità",
				"year"						=>	"anno",
				"subtype"					=>	"sottotipo",
				"sort by"					=>	"ordina per",
				"interface"					=>	"interfaccia",
				"does it work?"				=>	"funziona?",
				"preview of the message"	=>	"anteprima del messaggio",
				"preview of the new issue message"	=>	"anteprima del testo della questione",
				"Add a message to this issue"	=>	"Aggiungi un messaggio a questa questione",
				"Add a new issue"			=>	"Aggiungi una nuova questione",
				"MESSAGE"					=>	"MESSAGGIO",
				"there are no messages"		=>	"non ci sono messaggi",
				"No notebooks found"		=>	"Non è stato trovato alcun notebook",
				"subtype (notebook or netbook)"	=>	"sottotipo (notebook or netbook)",
				"compatibility with free software"	=>	"compatibilità con il software libero",
				"view the other specifications"	=>	"guarda le altre specifiche",
				"model"						=>	"modello",
				"model id"					=>	"id del modello",
				"tested on"					=>	"testato con",
				"tested with the following kernel libre"	=>	"testato con il seguente kernel libre",
				"video card model"			=>	"modello di scheda video",
				"wifi model"				=>	"modello di scheda wifi",
				"GNU/Linux distribution used for the test"	=>	"distribuzione GNU/Linux usata per il test",
				"does the video card work?"	=>	"funziona la scheda video?",
				"does the wifi card work?"	=>	"funziona la scheda wifi?",
				"Description: (write here all the useful information)"	=>	"Descrizione (scrivi sotto tutte le informazioni utili)",
				"discover all the wiki tags"	=>	"scopri tutti i tag della wiki",
				"Fields marked with <b>*</b> are mandatory"	=>	"I campi marcati con <b>*</b> sono obbligatori",
				"No printers found"			=>	"Non è stata trovata alcuna stampante",
				"interface"					=>	"interfaccia",
				"VendorID:ProductID code of the device" => "codice VendorID:ProductID del prodotto",
				"free driver used"			=>	"driver liberi usati",
				"set not-specified if not sure"	=>	"seleziona not-specified se non sei sicuro/a",
				"see the help page or leave blank if you are not sure"	=>	"guarda nella pagina di help o lascia vuoto se non sei sicuro/a",
				"No scanners found"			=>	"Non sono è stato trovato alcuno scanner",
				"No video cards found"		=>	"Non è stata trovata alcuna scheda grafica",
				"how does it work with free software?"	=>	"come funziona con il software libero?",
				"No wifi cards found"		=>	"Non è stata trovata alcuna scheda wifi",
				"does it work with free software?"	=>	"funziona con il software libero?",
				"differences in the entry"		=>	"differenze nel campo",
				"No 3G cards found"			=>	"Non è stata trovata alcuna scheda 3G",
				"Please specify in the below description entry the Internet Service Provider (ISP) and the country where the service is provided"	=>	"Per favore specifica nel sottostante campo descrizione l'Internet Service Provider (ISP) e il Paese dove il servizio viene fornito",
				"webcam model"	=>	"modello di webcam",
				"does it have a free bios?"	=>	"ha il bios libero?",
				"does the webcam work?"	=>	"funziona la webcam?",
				"Current revision"	=>	"Revisione corrente",
				"Hello"	=>	"Ciao",
				"Your"	=>	"il ",
				"control panel"	=>	"pannello di controllo",
				"create new account"	=>	"crea un account",
				"request new password"	=> "richiedi nuova password",
				"website statistics"	=>	"statistiche del sito",
				"hardware in the database"	=>	"hardware nel database",
				"users logged"	=>	"utenti loggati",
				"Watch your public profile"	=>	"Guarda il tuo profilo pubblico",
				"Edit your profile"	=>	"Modifica il tuo profilo",
				"Change your e-mail address"	=>	"Cambia il tuo indirizzo e-mail",
				"Change your password"	=>	"Cambia la tua password",
				"Delete your account"	=>	"Chiudi il tuo account",
				"choose the username"	=>	"scegli lo username",
				"characters allowed"	=>	"caratteri ammessi",
				"your e-mail address"	=>	"il tuo indirizzo e-mail",
				"necessary to confirm the registration"	=>	"necessario per confermare la registrazione",
				"choose the password"	=>	"scegli la password",
				"confirm the password"	=>	"conferma la password",
				"write the code above"	=>	"scrivi il codice mostrato sopra",
				"write your username"	=>	"scrivi il tuo username",
				"watch all the"	=>	"guarda tutte le",
				"actions carried out by moderators"	=>	"azioni compiute dai moderatori",
				"meet"	=>	"conosci",
				"Public profile of"	=>	"Profilo pubblico di",
				"See all the contributions of"	=>	"Guarda tutti i contributi di ",
				"My website"	=>	"Il mio sito personale",
				"My real name"	=>	"Il mio vero nome",
				"My e-mail address"	=>	"Il mio indirizzo e-mail",
				"I'm from"	=>	"Vengo da",
				"Birthdate"	=>	"Sono nato il",
				"My favourite distribution"	=>	"La mia distribuzione favorita",
				"Free software projects I'm working on"	=>	"Progetti di software libero con i quali collaboro",
				"My description"	=>	"La mia descrizione",
				"contributions"	=>	"contributi",
				"contributions of"	=>	"contributi di",
				"No sound cards found"	=>	"Non è stata trovata alcuna scheda audio",
				"LAST UPDATE"	=>	"ULTIMA MODIFICA",
				"search by"	=>	"cerca per",
				"analyze the output of the lspci command"	=>	"analizza l'output del comando lscpi",
				"paste the output of the lspci command"	=>	"incolla l'output del comand lspci",
				"works, but without 3D acceleration"	=>	"funziona, ma senza accelerazione 3D",
				"the text submitted by you does not seem the lspci -vmmnn output. Please check the text and try again"	=>	"il testo che hai inviato non sembra l'output del comando lspci -vmmnn. Per favore ricontrolla il testo e riprova",
				"Search form"	=>	"Form della ricerca",
				"write here the output of lspci -vmmnn"	=>	"scrivi qui l'output del comando lspci -vmmnn",
				"The following devices has been found in the database"	=>	"I seguenti device sono stati trovati nel database",
				"yes"	=>	"sì",
				"The following devices has not been found in the database"	=>	"I seguenti device non sono stati trovati nel database",
			),
		'es'	=>	array
			(
				"Search one device in the archive"	=>	"Busque un dispositivo en el archivo",
				"hardware type"		=>	"tipo de hardware",
				"the model name contains"	=>	"el nombre del modelo contiene",
				"List of issues"	=>	"Lista de incidencias",
				"TITLE"				=>	"TITULO",
				"TOPIC"				=>	"ARGUMENTO",
				"OPENED BY"			=>	"ABIERTO POR",
				"DATE"				=>	"FECHA",
				"REPLIES"			=>	"RESPUESTAS",
				"PRIORITY"			=>	"PRIORIDAD",
				"STATUS"			=>	"ESTADO",
				"You have to"		=>	"Tiene que",
				"in order to submit an issue"	=>	"para poder agregar una incidencia",
				"in order to add a message"	=> "para poder agregar un mensaje",
				"Description"		=>	"Descripción",
				"Messages"			=>	"Mensajes",
				"this message has been deleted"	=>	"este mensaje ha sido borrado",
				"in order to submit a message to this issue"	=>	"para poder agregar un mensaje a esta incidencia",
				"model name"		=>	"nombre del modelo",
				"model type"		=>	"tipo de modelo",
				"year of commercialization"	=>	"año de comercialización",
				"Results of the search"		=>	"Resultado de la búsqueda",
				"page list"					=>	"página",
				"No devices found"			=>	"No se encontró ningún dispositivo",
				"vendor"					=>	"fabricante", 
				"compatibility"				=>	"compatibilidad",
				"year"						=>	"año",
				"subtype"					=>	"subtipo",
				"sort by"					=>	"ordenar por",
				"interface"					=>	"interfaz",
				"does it work?"				=>	"¿funciona?",
				"preview of the message"	=>	"vista previa del mensaje",
				"preview of the new issue message"	=>	"vista previa del mensaje de la incidencia",
				"Add a message to this issue"	=>	"Agregue un mensaje a esta incidencia",
				"Add a new issue"			=>	"Agregue una nueva incidencia",
				"MESSAGE"					=>	"MENSAJE",
				"there are no messages"		=>	"no hay mensajes",
				"No notebooks found"		=>	"No se encontró ninguna laptop",
				"subtype (notebook or netbook)"	=>	"subtipo (laptop o netbook)",
				"compatibility with free software"	=>	"compatibilidad con software libre",
				"view the other specifications"	=>	"ver otras especificaciones",
				"model"						=>	"modelo",
				"model id"					=>	"id del modelo",
				"tested on"					=>	"probado con",
				"tested with the following kernel libre"	=>	"probado con el siguiente kernel libre",
				"video card model"			=>	"modelo de tarjeta de video",
				"wifi model"				=>	"modelo de tarjeta de red inalámbrica",
				"GNU/Linux distribution used for the test"	=>	"distribución GNU/Linux usada para la prueba",
				"does the video card work?"	=>	"¿funciona la tarjeta de video?",
				"does the wifi card work?"	=>	"¿funciona la tarjeta de red inalámbrica?",
				"Description: (write here all the useful information)"	=>	"Descripción (escriba aquí toda la información útil)",
				"discover all the wiki tags"	=>	"mostrar todas las etiquetas del wiki",
				"Fields marked with <b>*</b> are mandatory"	=>	"Campos marcados con <b>*</b> son obligatorios",
				"No printers found"			=>	"No se encontró ninguna impresora",
				"interface"					=>	"interfaz",
				"VendorID:ProductID code of the device" => "código VendorID:ProductID del dispositivo",
				"free driver used"			=>	"driver libre usado",
				"set not-specified if not sure"	=>	"seleccione not-specified si no esta seguro/a",
				"see the help page or leave blank if you are not sure"	=>	"vea la página de ayuda o deje vacío si no esta seguro/a",
				"No scanners found"			=>	"No se encontró ningun escáner",
				"No video cards found"		=>	"No se encontró ninguna tarjeta de video",
				"how does it work with free software?"	=>	"¿como funciona con software libre?",
				"No wifi cards found"		=>	"No se encontró ninguna tarjeta de red inalámbrica",
				"does it work with free software?"	=>	"¿funciona con software libre?",
				"differences in the entry"		=>	"diferencias en el campo",
				"No 3G cards found"			=>	"No se encontró ninguna tarjeta 3G",
				"Please specify in the below description entry the Internet Service Provider (ISP) and the country where the service is provided"	=>	"Por favor especifique en el campo de descripción inferior el Proveedor de Internet (ISP) y el país donde se provee el servicio",
				"webcam model"	=>	"modelo de cámara web",
				"does it have a free bios?"	=>	"¿tiene bios libre?",
				"does the webcam work?"	=>	"¿funciona la cámara web?",
				"Current revision"	=>	"Revisión actual",
				"Hello"	=>	"Hola",
				"Your"	=>	"Su ",
				"control panel"	=>	"panel de control",
				"create new account"	=>	"crear una cuenta",
				"request new password"	=> "solicitar nueva contraseña",
				"website statistics"	=>	"estadísticas del sito",
				"hardware in the database"	=>	"hardware en la base de datos",
				"users logged"	=>	"usuarios en línea",
				"Watch your public profile"	=>	"Ver su perfil público",
				"Edit your profile"	=>	"Editar su perfil",
				"Change your e-mail address"	=>	"Cambiar su dirección e-mail",
				"Change your password"	=>	"Cambiar su contraseña",
				"Delete your account"	=>	"Borrar su cuenta",
				"choose the username"	=>	"elija su nombre de usuario",
				"characters allowed"	=>	"caracteres permitidos",
				"your e-mail address"	=>	"su dirección e-mail",
				"necessary to confirm the registration"	=>	"necesario para confirmar el registro",
				"choose the password"	=>	"elija la contraseña",
				"confirm the password"	=>	"confirme la contraseña",
				"write the code above"	=>	"escriba el código mostrado superior",
				"write your username"	=>	"escriba su nombre de usuario",
				"watch all the"	=>	"ver todas las",
				"actions carried out by moderators"	=>	"acciones efectuadas por los moderadores",
				"meet"	=>	"conoce",
				"Public profile of"	=>	"Perfil público de",
				"See all the contributions of"	=>	"Ver todas las contribuciones de",
				"My website"	=>	"Mi sitio web",
				"My real name"	=>	"Mi nombre real",
				"My e-mail address"	=>	"Mi dirección e-mail",
				"I'm from"	=>	"Soy de",
				"Birthdate"	=>	"Fecha de nacimiento",
				"My favourite distribution"	=>	"Mi distribución favorita",
				"Free software projects I'm working on"	=>	"Proyectos de Software Libre en los que colaboro",
				"My description"	=>	"Mi descripción",
				"contributions"	=>	"contribuciones",
				"contributions of"	=>	"contribuciones de",
				"No sound cards found"	=>	"No se encontró ninguna tarjeta de audio",
				"LAST UPDATE"	=>	"ULTIMA MODIFICACIÓN",
			),
		'fr'	=>	array
			(
				"Search one device in the archive"	=>	"Shercher un appareil dans les archives",
				"hardware type"		=>	"type de matériel",
				"the model name contains"	=>	"le nom du modèle contient",
				"List of issues"	=>	"Liste de problème",
				"TITLE"				=>	"TITRE",
				"TOPIC"				=>	"SUJET",
				"OPENED BY"			=>	"OUVERT PAR",
				"DATE"				=>	"DATE",
				"REPLIES"			=>	"REPONSES",
				"PRIORITY"			=>	"PRIORITE",
				"STATUS"			=>	"STATUS",
				"You have to"		=>	"Vous devez",
				"in order to submit an issue"	=>	"pour pouvoir soumettre un problème",
				"in order to add a message"	=> "pour pouvoir envoyer un message",
				"Description"		=>	"Description",
				"Messages"			=>	"Messagges",
				"this message has been deleted"	=>	"ce message à été supprimé",
				"in order to submit a message to this issue"	=>	"pour pouvoir envoyer un message concernant ce problème",
				"model name"		=>	"nom de modèle",
				"model type"		=>	"type de modèle",
				"year of commercialization"	=>	"année de commercialisation",
				"Results of the search"		=>	"Resultat de la recherche",
				"page list"					=>	"liste de page",
				"No devices found"			=>	"Aucun appareil trouvé",
				"vendor"					=>	"vendeur",
				"compatibility"				=>	"compatibilitée",
				"year"						=>	"année",
				"subtype"					=>	"sous-type",
				"sort by"					=>	"afficher par",
				"interface"					=>	"interface",
				"does it work?"				=>	"cela fonctionne?",
				"preview of the message"	=>	"prévisualisation du message",
				"preview of the new issue message"	=>	"prévisualisation du message du nouveau problème",
				"Add a message to this issue"	=>	"Ajouter un message à ce problème",
				"Add a new issue"			=>	"Ajouter un nouveau problème",
				"MESSAGE"					=>	"MESSAGE",
				"there are no messages"		=>	"Il n'y a pas de messages",
				"No notebooks found"		=>	"Aucun notebooks trouvé",
				"subtype (notebook or netbook)"	=>	"sous-type (notebook ou netbook)",
				"compatibility with free software"	=>	"compatibilitée avec le logiciel libre",
				"view the other specifications"	=>	"voir les autres spécifications",
				"model"						=>	"modèle",
				"model id"					=>	"ID du modèle",
				"tested on"					=>	"testé sur",
				"tested with the following kernel libre"	=>	"testé avec le kernel libre suivant",
				"video card model"			=>	"modèle de carte vidéo",
				"wifi model"				=>	"modèle de carte wifi",
				"GNU/Linux distribution used for the test"	=>	"Distribution GNU/Linux utilisée pour le test",
				"does the video card work?"	=>	"La carte vidéo fonctionne t'elle?",
				"does the wifi card work?"	=>	"La carte wifi fonctionne t'elle?",
				"Description: (write here all the useful information)"	=>	"Description (écrivez ici toutes informations utile)",
				"discover all the wiki tags"	=>	"voir tout les tags wiki",
				"Fields marked with <b>*</b> are mandatory"	=>	"Les champs marqués avec <b>*</b> sont mandatoire",
				"No printers found"			=>	"Aucun imprimante trouvée",
				"interface"					=>	"interface",
				"VendorID:ProductID code of the device" => "VendorID:ProductID de l'appareil",
				"free driver used"			=>	"pilote libre utilisé",
				"set not-specified if not sure"	=>	"voir non-spécifié en cas de doute",
				"see the help page or leave blank if you are not sure"	=>	"Voir la page d'aide ou laisser blanc si vous n'êtes pas sur",
				"No scanners found"			=>	"Aucun scanner trouvé",
				"No video cards found"		=>	"Aucun carte vidéo trouvée",
				"how does it work with free software?"	=>	"A quel point cela fonctionne t'il avec du logiciel libre?",
				"No wifi cards found"		=>	"Aucune carte wifi trouvée",
				"does it work with free software?"	=>	"cela fonctionne t'il avec le logiciel libre",
				"differences in the entry"		=>	"difference dans l'entrée",
				"No 3G cards found"			=>	"Aucune carte 3G trouvée",
				"Please specify in the below description entry the Internet Service Provider (ISP) and the country where the service is provided"	=>	"Merci de préciser dans cette description le fournisseur d'accès et le pays dans lequel le service est fournis",
				"webcam model"	=>	"modèle de webcam",
				"does it have a free bios?"	=>	"à t'il un bios libre?",
				"does the webcam work?"	=>	"la webcam fonctionne t'elle?",
			),
	);
		
	public static function sanitize($lang = 'en')
	{
		return (in_array($lang,self::$allowed)) ? sanitizeAll($lang) : 'en';
	}
}

class MyStrings
{
	
	public static $view = array(
		
		'en' =>	array(
			'notebooks' => array(
				'element' => 'notebook'
			),
			
			'wifi'		=>	array(
				'element' => 'wifi card'
			),
			
			'videocards'=>	array(
				'element' => 'video card'
			),
			
			'printers'=>	array(
				'element' => 'printer'
			),
			
			'scanners'=>	array(
				'element' => 'scanner'
			),

			'threegcards' => array(
				'element' => '3G-card',
			),
			
			'soundcards' => array(
				'element' => 'sound card',
			),
		),
		
		'fr' =>	array(
		
			'notebooks' => array(
				'element' => 'notebook'
			),
			
			'wifi'		=>	array(
				'element' => 'wifi card'
			),
			
			'videocards'=>	array(
				'element' => 'video card'
			),
			
			'printers'=>	array(
				'element' => 'printer'
			),
			
			'scanners'=>	array(
				'element' => 'scanner'
			),
			
			'threegcards' => array(
				'element' => '3G-card',
			),
			
			'soundcards' => array(
				'element' => 'sound card',
			),
		),
		
		'it' =>	array(
		
			'notebooks' => array(
				'element' => 'notebook'
			),
			
			'wifi'		=>	array(
				'element' => 'wifi card'
			),
			
			'videocards'=>	array(
				'element' => 'video card'
			),
			
			'printers'=>	array(
				'element' => 'printer'
			),
			
			'scanners'=>	array(
				'element' => 'scanner'
			),

			'threegcards' => array(
				'element' => '3G-card',
			),
			
			'soundcards' => array(
				'element' => 'sound card',
			),
		),
		
		'es' =>	array(
		
			'notebooks' => array(
				'element' => 'notebook'
			),
			
			'wifi'		=>	array(
				'element' => 'wifi card'
			),
			
			'videocards'=>	array(
				'element' => 'video card'
			),
			
			'printers'=>	array(
				'element' => 'printer'
			),
			
			'scanners'=>	array(
				'element' => 'scanner'
			),
			
			'threegcards' => array(
				'element' => '3G-card',
			),
			
			'soundcards' => array(
				'element' => 'sound card',
			),
		),
	);
	
	//type => controller
	public static $reverse = array(
		'notebook'	=>	'notebooks',
		'wifi'		=>	'wifi',
		'videocard'	=>	'videocards',
		'printer'	=>	'printers',
		'scanner'	=>	'scanners',
		'3G-card'	=>	'threegcards',
		'soundcard'	=>	'soundcards',
	);

	public static function getTypes()
	{
		return implode(',',array_keys(self::$reverse));
	}
	
}