<?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
			(
				"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",
				"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?",
			),
		'es'	=>	array
			(
				"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",
				"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",
			),
	);
		
	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',
			),
		),
		
		'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',
			),
		),
		
		'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',
			),
		),
		
		'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',
			),
		),
	);
	
	//type => controller
	public static $reverse = array(
		'notebook'	=>	'notebooks',
		'wifi'		=>	'wifi',
		'videocard'	=>	'videocards',
		'printer'	=>	'printers',
		'scanner'	=>	'scanners',
		'3G-card'	=>	'threegcards'
	);
	
	public static function getTypes()
	{
		return implode(',',array_keys(self::$reverse));
	}
	
}