Easy Language System 0.1.1 BETA

Door Pieter van Linschoten, 20 jaar geleden, 5.033x bekeken

Een tijdje terug kreeg ik het idee, om een Talen Class te maken. Een Talen Class, - ja je leest het goed - die vooral veel mogenlijkheden biedt. Eentje die zowel gebruiksvriendelijk als dynamisch is. Makkelijk te implementeren en gebruiken, en toch complex kwa opties. Nu is dat voor mij een veel te moeilijke klus, maar ik heb wel iets gemaakt, wat daarnaar streeft :P.

Hierbij presenteer ik u: Easy Language System (ELS).

Versie 0.1 Beta

Korte uitleg:
Je include IncludeFile.php op een pagina, maakt de class DispText aan en overal waar je $class->_Text($var) neerzet, zal de het script uit de database een stuk tekst met code '$var' in de juiste taal selecteren. Ook is er een mogenlijkheid om deze stukken aan te passen, tevens in meerdere talen te gelijk.

Implementeren op jouw site:
- Je include IncludeFile.php op de pagina waar je het wil implemeteren
- $DT = new DispText($_SESSION['lang'],$moderator) //Je moet $moderator dmv je eigen beveiligssysteem een waarde 0 of 1 meegeven. 0 = normale user, 1 = moderator
- Je vervangt elk stukje tekst wat je dynamisch wil laten zijn door $DT->_Text('code') // Je moet moet 'code' een relevante, maar eigen ID meegeven, waarmee je deze in de database associeert.
- Klik op in moderator modus op [.edit.] en zet de oorspronkelijke tekst in het tekstveld.
- Druk op update, en je bent klaar.

Het is in principe mogenlijk ALLES in de database te zetten, in meerdere talen dus, zolang je maar rekening houdt dat de 'code' uniek moet zijn voor elk stuk tekst (behalve als je bijvoorbeeld 2 keer dezelfde tekst nodig hebt). Het is zelfs mogenlijk om het Edit menu dynamisch te maken.

Dit script is nog in BETA fase, aangezien het voor mij nog niet duidelijk is inhoevere dit script werkelijk als handig ervaren wordt, en wat er dus nog moet veranderen om dat dan wel te zijn. Met name kritiek die betrekking heeft op de gebruiksvriendelijkheid is daarom gewenst.

De tabellen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE Text_Display (
 id int NOT NULL auto_increment,
 Text_LangCode char(2) NOT NULL default '',
 Text_PartCode varchar(32) NOT NULL default '',
 Text_Content  longtext NOT NULL,
PRIMARY KEY  ( id )
);

CREATE TABLE Text_Languages (
 id int NOT NULL auto_increment,
 Text_LangCode char(2) NOT NULL default '',
 Text_Language varchar(50) NOT NULL default '',
PRIMARY KEY  (id)
);


Update 0.1.1 (05-02-2009
- Menu is nu dikgedrukt bij selectie
- Kleine bugfix (Tabel werkte niet omdat deze niet van de nodige hoofdletters was voorzien)
- Voorbeeld nu ALTIJD Beschikbaar

Voorbeeld: http://www.lapidi.nl/project_language/

Gesponsorde koppelingen

PHP script bestanden

  1. easy-language-system-011-beta

 

Er zijn 21 reacties op 'Overig'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Kumkwat Trender
Kumkwat Trender
20 jaar geleden
 
0 +1 -0 -1
je computer staat niet aan :S :P
Pieter van Linschoten
Pieter van Linschoten
20 jaar geleden
 
0 +1 -0 -1
Jawel, hmm.. misschien heb ik iets over het hoofd gezien. In principe zou de link het moeten doen...

Edit:
Ik heb geloof ik alleen deze computer rechten gegeven. Moet even kijken hoe ik dit ga oplossen.


Edit:
nummer 2:
Fixed. Mijn router instelling zijn laatst gereset, daardoor linkte hij niet meer door naar m'n computertje, nu wel dus...

Verder: Mijn volgende stap: Meer talen kunnen toevoegen + verwijderen, ben ik nu eigenlijk vergeten :/
Kumkwat Trender
Kumkwat Trender
20 jaar geleden
 
0 +1 -0 -1
maak ook ff javascript beveileging.. zou best wel handig zijn..
Pieter van Linschoten
Pieter van Linschoten
20 jaar geleden
 
0 +1 -0 -1
Wat bedoel je?

Edit:
Ik snap het al
Op een normale site is dit niet nodig, want daar kunnen alleen de moderators het aanpassen, maar misschien handig als ik het snel effe inbouw op het voorbeeld :p
- -
- -
20 jaar geleden
 
0 +1 -0 -1
Ziet er leuk uit. Misschien AJAX gebruiken voor de moderators?

Vind je het trouwens fijn als ik 'm even op mijn site host, zodat je een 24/7 voorbeeld heb?
Pieter van Linschoten
Pieter van Linschoten
20 jaar geleden
 
0 +1 -0 -1
Nee hoor. Kreeg vandaag een aanmaning binnen van mijn webprovider.. Zit dus effe zonder ;) Binnenkort maar eventjes betalen.

En zelf zat ik ook aan AJAX te denken, maar ik dacht: eerst maar even een simpel concept, dan kan ik van daar uit verder werken. :)
Rik S
Rik S
20 jaar geleden
 
0 +1 -0 -1
ziet er leuk uit, alleen is er een klein probleempje met appostrofjes
kijk maar bij doesn\'t
dat kan je niet veranderen naar doesn't
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
wat wens je hier mee te bereiken: smallint(11) ??

In de mysql handleiding vind ik dit:
A small integer. The signed range is -32768 to 32767. The unsigned range is 0 to 65535.

Dus heb je 2 manieren, of je zet er ZEROFILL bij, dan heeft die 11 nut
of je kiest een int als je 11 tekens breed wil gaan.
Pieter van Linschoten
Pieter van Linschoten
20 jaar geleden
 
0 +1 -0 -1
Ik begrijp niet wat je bedoelt... (A)

ik wil 11 tekens breed gaan, dus waarschijnlijk heb ik dan de verkeerde instelling gebruikt.
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
Quote:
ik wil 11 tekens breedt gaan
Ken je datatypes! Gebruik gewoon een INT, je wilt niet gaan klooien met kansloze voorloopnullen. INT is dus voldoende, dat gelul van INT(11) mag je vergeten.
Pieter van Linschoten
Pieter van Linschoten
20 jaar geleden
 
0 +1 -0 -1
Zo beter?

`id` int(11) NOT NULL auto_increment,

Ja, ik ben niet zo begaan met het bestuderen van database functies, en met name die van MySQL. Misschien toch maar eens doen als ik ooit nog wat wil doen hiermee;)
Frank -
Frank -
20 jaar geleden
 
0 +1 -0 -1
(11) mag nog richting schroothoop, heb je niet nodig. Een INT is een INT, ja toch?
Pieter van Linschoten
Pieter van Linschoten
20 jaar geleden
 
0 +1 -0 -1
Ja, ik moet je eerlijk zeggen dat ik er weinig tot geen verstand. Ik gebruik PHPmyAdmin voor de Tabel opstelling, dus eigenlijk moet ik mijzelf heel diep schamen.

Desalniettemin: Weer wat geleerd vandaag! +1
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
mooi zo! nu nog enkel die lelijke ` telkens weg doen en we zijn allemaal tevreden ;)
J orii
J orii
20 jaar geleden
 
0 +1 -0 -1
Het zal vast moeilijk zijn.. maar ik zoek al en tijdje een script je je pagina's vertaalt naar bijv. engels.. dat je het maar 1x hoeft te typen.. dat zou best handig zijn.. :).. dit is ook een handig script ik ga het hier mee proberen :D
Mark Eilander
Mark Eilander
19 jaar geleden
 
0 +1 -0 -1
Link werkt helaas niet.

Heeft iemand misschien een andere link waar ik heb even op kan bekijken?
Andre vredeveld
andre vredeveld
18 jaar geleden
 
0 +1 -0 -1
misschien iemand nog een linkje

of iemand die het heeft werken waar ik kan testen

m.v.g.
Pieter van Linschoten
Pieter van Linschoten
18 jaar geleden
 
0 +1 -0 -1
Ik heb een werkende link toegevoegd.
Martijn Wieringa
Martijn Wieringa
18 jaar geleden
 
0 +1 -0 -1
Kleine opmerking over de code.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$DT = new DispText($_SESSION['lang'],0);
echo $DT->_Text('Home');


"DispText" vind ik niet echt een goede ClassName. Schrijf het liever voluit.

De underscore in "_Text" is een beetje raar... Vroeger werd de underscore gebruikt op binnen objecten 'private methods' aan te geven... gebruik (wat mij betreft) liever $DT->getText('label');

Enkele suggesties:
- Een methode om een 'taal file' uit te lezen..
- Reeds opgevraagde waarden CACHE'en

Verder een leuk begin!
Pieter van Linschoten
Pieter van Linschoten
18 jaar geleden
 
0 +1 -0 -1
@Pholeron:

DispText i.p.v. DisplayText, sorry, ik kan er nu niet wakker van liggen, maar zal het in het vervolg zeker meenemen.

Ik gebruik voor mijzelf de '_' om de functies die ook werkelijk OUTPUT terug geven van de class, aan te duiden, maar ik weet niet of er andere 'standaarden' voor zijn.

Verder bedankt voor de suggesties, ik hoop dat ik er wat mee kan doen :)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Ed
Ed
18 jaar geleden
 
0 +1 -0 -1
Ik wil je niet ontmoedigen, maar er zijn al een tijd vertaal standaarden. ICU, I18N, XLIFF.

Op elke pagina meerder malen queries uitvoeren, en dan nog niet eens logica queries meegerekend. Tis allemaal beetje overkill en erg zwaar.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. easy-language-system-011-beta

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.