Changing to UTF-8/de

From TNG_Wiki
Jump to: navigation, search

Kleine Anleitung für die Umstellung einer TNG-Site und ihrer Datenbank auf UTF-8. Die ursprüngliche (Englische) Seite "Notes on changing a TNG Site and database to UTF-8" wurde von User:TheKiwi zur Verfügung gestellt.

Diese Seite befindet sich gerade in der Übersetzung. Bitte so noch nicht verwenden!!

Wichtiger Hinweis

Die hier Beschriebene Umstellung einer TNG-Site und der dazugehörigen Datenbank stell quasi eine Operation am offenen Herzen dar, denn die Datenbank ist das Herz von TNG! Deshalb bitte diese Hinweise genau lesen und auch verwenden. Und bei jedem Schritt doppelt und dreifach prüfen, ob die Einstellungen wirklich korrekt sind. Ganz besonders wichtig ist der erste Schritt "Vollsicherung der TNG-Site und der Datenbank"!!

Wie alle automatischen Skripte führt der Computer sie auch bei Fehleinstellungen gnadenlos aus mit allen Konsequenzen für die Datenbank. Ein Beispiel: Durch eine falsche Einstellung in der Datenbank selber (unten beschrieben) werden unter anderem auch die Ortsnamen ab dem ersten Umlaut abgeschnitten. So wird dann aus Nürnberg einfach N und aus Nörtlingen dann auch...

Im Zweifelsfall lieber zum Äußersten greifen, und um Hilfe bitten.

Hinweis für Neuinstallationen

Alle neuen Installationen von TNG sollten grundsätzlich nur noch als UTF-8 ausgeführt werden.

Vollsicherung der TNG-Site und der Datenbank

Da das in der ursprünglichen Seite beschriebene Vorgehen mit phpMyAdmin so nicht bei jedem Hoster funktioniert und auch fehleranfällig ist, sollen hier andere Möglichkeiten für eine Vollsicherung aufgezeigt werden.

Dieser Schritt darf keinesfalls übersprungen werden. Er ist die Lebensversicherung für die Daten von TNG!!


1 - Erzeugen einer Vollsicherung der TNG-Site

1.1 - Dazu geht man entweder wie in TNG Datensicherung/de vor (einfach, speziell "Website Backup"), oder

1.2 - man benutzt die Bordmittel von TNG (Verwaltung >> Dienstprogramme) (nicht so einfach).

Erst jetzt kann mit der eigentlichen Umstellung begonnen werden.

Kleiner Hinweis: Es ist übrigens eine sehr gute Idee, regelmäßig eine Vollsicherung durchzuführen...

Konvertieren der Datenbank nach UTF-8

2 - Um die Datenbank nach UTF-8 zu konvertieren, verwenden wir ein fertiges Skript.

2.1 - Das Skript

http://www.phoca.cz/documents/38-tools/154-how-to-change-collation-in-database

herunterladen, auf dem lokalen Rechner entpacken und dann das Verzeichnis "tool_phoca_changing_collation" in das Hauptverzeichnis der TNG-Site hoch laden.

2.2 - Nun mit phpMyAdmin die Einstellungen der TNG-Datenbank prüfen. Wie man dahin kommt ist abhängig vom Hoster und vom Vertrag! Auf der phpMyAdmin Hauptseite "MYSQL-CONTOL-CENTER" (über das "Häuschen" erreichbar) müssen nun folgende Parameter geprüft und wenn notwendig richtig gesetzt werden:

  • Language: z.B. German (de-utf-8)
  • MySQL-Zeichensatz: (utf8)
  • Zeichensatz / Kollation der MySQL-Verbindung: z.B. utf8_general_ci. Eine Fehleinstellung hier erzeugt den oben beschriebenen "Nürnberg-Effekt"!

2.3 - Jetzt auf die Seite

http://URLToYourSite/tool_phoca_changing_collation/

navigieren, wobei "URLToYourSite" durch die URL der aktuellen TNG-Site erstzt wrid. Das Skript startet automatisch, und die fünf Eingabefelder müssen mit den notwendigen Informationen befüllt werden, speziell auch die Information für die "Collation": utf8_xxxxxx_ci

xxxxxx bestimmt die UTF-8 Kollation der TNG-Site, z.B. swedish, german, general, usw. Diese Kollation beeinflusst unter Anderem die Sortierreihenfolge der Buchstaben. Also z.B. ob ø bei o erscheint oder am Ende des Alphabets, ähnlich ob å bei a oder auch ß bei s oder ss.

Auf der Seite http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html finden sich ein paar Informationen über den Zusammenhang zwischen Zeichensätzen und Kollationen. Die Kollation sollte auf Basis der Hauptsprache der TNG-Site gewählt werden.

Chuck Filteau wies darauf hin, dass er mit der Einstellung utf8_general_ci Probleme bei der Darstellung der französischen Akzente in allen Browsern hatte. Erst die Einstellung einer Landessprache hier Schwedisch, löste das Problem.

Nach dem Eintragen der gewählten Kollation in das fünfte Eingabefeld kann der "Submit" Button angeklickt werden. Damit wird die Konvertierung *aller* Tabellen der Datenbank nach UTF-8 angestoßen, auch derer die nicht zu TNG gehören. Das Skript ist hier rigoros!! Das Skript zeigt den Fortschritt der Konvertierung an, in dem es die konvertierten Tabellen in einem separaten Feld anzeigt. Die letzte konvertierte Tabelle ist tng_xnotes. Bevor die nicht aufgelistet wird, ist das Skript noch nicht fertig. Das kann eine geraume Zeit dauern! Once you've decided on what collation you want to use and entered it into the 5th box, click the Submit button. This will change the collation of the database, tables and columns to the collation you've chosen. The progress will be shown as it goes along. The last tables altered are tng_xnotes, so if you don't see these as the last items listed in the output the script didn't complete.

2.4 - Wenn das Skript fertig ist, wird unten ein Link "back to the Home Page" angezeigt. Erst jetzt ist das Skript wirklich beendet.

2.5 - Nach erfolgreichen Ende des Skriptes muss das Verzeichnis "tool_phoca_changing_collation" unbedingt von der TNG-Site gelöscht werden!.


Die Einstellungen in TNG anpassen

3 Jetzt müssen (fast) nur noch die entsprechenden Einstellungen in TNG angepasst werden.

3.1 - In Verwaltung >> Einstellungen >> Konfiguration >> Allgemeine Einstellungen >> Sprache die Einstellungen auf UTF-8 anpassen.

3.2 - Und in Verwaltung >> Sprachen jede von der Site unterstütze Sprache auf UTF-8 anpassen.

Make sure that you are using UTF-8 Encoded language files

Anmerkung des Übersetzers: Das sollte bei allen halbwegs aktuellen Versionen von TNG eigentlich nicht (mehr) nötig sein. Daher habe ich es auch nicht übersetzt. Falls es doch noch notwendig sein sollte bitte benachrichtigen, dann wird es bei Gelegenheit nachgezogen...

4.1 - You can download UTF-8 encoded files in all of the languages that TNG supports from the TNG Downloads page - the same page you download your TNG software and TNG updates from. There is a download for each language supported and that download includes the files text.php, admintext.php, alltext.php and an empty cust_text.php file.

4.2 - If you have made changes to any of the language files for your own purposes, you should move all of those changes to the file cust_text.php for each language, so that you can use "standard" language files as supplied by TNG, with the changes being made only in cust_text.php so that you don't lose your changes in any future TNG updates. You should use the supplied empty cust_text.php that came with your UTF-8 encoded language files from 4.1 above.

If you have a cust_text.php file that you need to convert to UTF-8, then the steps below will help you do that on Macintosh and Windows computers

on Macintosh system

4.3 - Here's what works on Macintosh. You need TextWrangler - a free text editor. If you don't already have TextWrangler, or its big brother BBEdit, you can download the free TextWrangler from

http://www.barebones.com/products/textwrangler/

4.3.1 - For each language folder open the file cust_text.php in TextWrangler

4.3.2 - After the file is open, go to the File menu and choose "Reopen using Encoding ------> Western (Windows Latin 1).

4.3.3 - At the bottom of the TextWrangler window is a pop up menu should now say "Western (Windows Latin 1)". Click on this and choose "Unicode™ (UTF-8, no BOM)" Note: Starting with TextWrangler Ver 3.5, the UI terminology has been changed, and "UTF-8, no BOM" is no longer listed as an option. Per the Release Notes, "Unicode (UTF-8, no BOM)" has been renamed to "Unicode (UTF-8)".

4.3.4 - Save the file.

on Windows system

4.4 - need instructions here on how to do this on Windows. It needs to use a text editor that can handle saving files in UTF-8 format WITHOUT writing the BOM (Byte Order Mark) to the file, which causes odd characters  to appear on TNG pages, and your Admin Menu may display a blank page because there are characters before the <?php which should be first in the file.

4.4.1 - Notepad++ (Current Version) will allow converting the $text variable files to UTF-8 without a BOM.

That's it. Your site should now be running in UTF-8.

Verwandte links