Rolf B: Sprachdatei -> Datenbank oder als Datei ablegen

Beitrag lesen

Hallo Michael,

grundsätzlich geht beides, und beides dürfte hinreichend performant sein.

PHPBB beispielsweise verwendet die Include-Methode, die Include-Dateien sind PHP Code und erweitern mittels array_merge ein assoziatives Array, worin sich für jeden Text ein Key und dessen Langform befinden. Das sieht in einem alten PHPBB 3.1 Code, der bei mir noch rumliegt, so ähnlich aus:

<?php
if (empty($lang) || !is_array($lang))
{
	$lang = array();
}

$lang = array_merge($lang, array(
	'TEXT1'		=> 'Das ist ein Text.',
	'TEXT2'		=> 'Noch ein Text',
  ...
));

Natürlich mit sinnvolleren Keys und Texten. Vorteil ist, dass man die Texte relativ zügig mit einem Texteditor bearbeiten kann. Um sie zu updaten, braucht man aber Schreibrecht auf dem Server

Verwendet man den Opcache, lädt sich das zügig und - soweit ich weiß - erkennt PHP dann auch Änderungen an den Quelldateien und compiliert sie neu.

In einer Datenbank brauchst Du ein Pflegetool, oder Du musst mit PHPMYADMIN in den Tabellen rumfuhrwerken. Entweder row by row, oder durch Import einer Textdatei. D.h. ohne Pflegetool is des net so leiwand. Jedenfalls hat es den Vorteil, dass man "nur" Schreibrecht auf die DB braucht, und mit einem Pflegetool kann man auch die Übersetzung an mehrere Leute delegieren oder sogar dafür sorgen, dass bestimmte Personen nur bestimmte Textteile übersetzen können. Es ist dann auch leicht möglich, die unterschiedlichen Sprachversionen nebeneinander darzustellen und automatisch zu erkennen, ob eine Übersetzung veraltet ist.

Ich würde aber annehmen, dass der Zugriff ohne memcache oder ähnliches nicht so flott ist. Das muss man dann messen und testen - und am besten den Textzugriff so kapseln, dass das Einschieben einer Cache-Instanz ohne totalen Rewrite der ganzen Anwendung funktioniert.

Rolf

--
sumpsi - posui - obstruxi