Sprach Konfiguration Version 2.0.0 - Komplett neu gecodet

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Pingu625

Sprach Konfiguration Version 2.0.0 - Komplett neu gecodet

Beitrag von Pingu625 »

Hi!

Ich code momentan meinen Sprachmod neu, um ihn leistungsfähiger und besser zu machen ;)

Nur stoße ich jetzt auf ein Problem:

Code: Alles auswählen

case 'costum':
         	$file = $phpbb_root_path . 'language/lang_' . $HTTP_POST_VARS['lang'] . '/' . $HTTP_POST_VARS['file'];
		$tmpLng = sprach_lng($file);

                 $i = 1;

	        foreach($tmpLng as $name => $translation)
	        {
                 	$size_f_1 = strlen($translation);
	                $size_f = $size_f_1 + '10';

                         if( $size_f <= '80' )
                         {
                         	$transl = '&nbsp;&nbsp;<input type="text" name="' . $name . '" value="' . $translation . '" size="' . $size_f . '"></input><br>';
                         }

                         if( $size_f >= '80' )
                         {
                                 $eighty = '80';
                          	$rows_f = $size_f/$eighty;
                                 $rows = ceil($rows_f);
                         	$transl = '&nbsp;&nbsp;<textarea name=' . $name . '"  cols="80" rows="' . $rows . '">' . $translation . '</textarea><br>';
                         }

                         $template->assign_block_vars('switch_edit_file_costum.lang', array(
	         		"NAME" => $name,
	         		"TRANSLATION" => $transl)
                         );

                         $i++;
		}

		$hidden_fields = '<input type="hidden" name="lang" value="' . $HTTP_POST_VARS['lang'] . '" />';
                 $hidden_fields .= '<input type="hidden" name="file" value="' . $HTTP_POST_VARS['file'] . '" />';

                 if (!($translation))
                 {
                         $file_doc = file_get_contents($file);

                         $template->assign_vars(array(
	        		"FILE_EDIT" => $file_doc,
	                	"HIDDEN_FIELDS" => $hidden_fields,

	        		"T_EDIT" => $lang['Lang_t_edit'],
                                 "T_INFO" => $lang['Lang_t_info'],
                                 "U_NEXT" => append_sid("admin_lang.$phpEx?mode=save&edit=full"),

                         	"IMG_EDIT_FILE" => $images['Lang_edit'],

	        		"L_FILE_EDIT" => $lang['Lang_edit'],
                                 "L_INFO" => $lang['Lang_info'],
                         	"L_FILE_EDIT_EXPLAIN" => $lang['Lang_edit_full_explains'],
                         	"L_EXPLAINS" => $lang['Lang_explains'])
	        	);

                 	$template->assign_block_vars('switch_edit_file_full_plus', array());
                 }
                 else
		{
                 $template->assign_vars(array(
                         "ROWS" => $transl,
	                "HIDDEN_FIELDS" => $hidden_fields,

	        	"T_EDIT" => $lang['Lang_t_edit_costum'],
                         "U_NEXT" => append_sid("admin_lang.$phpEx?mode=save&edit=costum"),

                         "IMG_EDIT_FILE" => $images['Lang_edit'],

	        	"L_FILE_EDIT" => $lang['Lang_edit'],
                         "L_FILE_EDIT_EXPLAIN" => $lang['Lang_edit_costum_explains'],
                         "L_EXPLAINS" => $lang['Lang_explains'])
	        );

                 $template->assign_block_vars('switch_edit_file_costum', array());
                 }
         	break;
Dies ist die Stelle in der PHP Datei.

Der Teil in dem Template:

Code: Alles auswählen

<!-- BEGIN switch_edit_file_costum -->
<form action="{U_NEXT}" method="post"><table width="99%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline">
	<tr>
		<th colspan="3">{T_EDIT}</td>
	</tr>
         <tr>
                 <td class="row2" align="center" height="128" width="128" rowspan="3"><img src="{IMG_EDIT_FILE}" alt="{L_FILE_EDIT}" border="0"></td>
                 <td class="row2" align="center" colspan="2">{L_FILE_EDIT}</td>
	</tr>
         <tr>´
                 <td class="row1" align="center" colspan="2">
                 <table width="99%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline">
<!-- BEGIN lang -->
         		<tr>
                 		<td class="row2" align="center">{switch_edit_file_costum.lang.NAME}</td>
                                 <td class="row1" align="center">{switch_edit_file_costum.lang.TRANSLATION}</td>
			</tr>
<!-- END lang -->
		</table>
                 </td>
	</tr>
         <tr>
         	<td class="row2" align="center" height="10" colspan="2">{HIDDEN_FIELDS}<input type="submit" name="submit" class="mainoption" value="{L_INPUT}"/></th>
         </tr>
</table></form>
<br>
<table width="99%" cellpadding="4" cellspacing="1" border="0" align="center" class="forumline">
	<tr>
		<th colspan="2">{L_EXPLAINS}</td>
	</tr>
         <tr>
                 <td class="row2" align="center"><b>(*1)</b><br>{L_FILE_EDIT_EXPLAIN}</td>
	</tr>
</table>
<!-- END switch_edit_file_costum -->
Tja, leider klappt das mit der Schleife nicht so wie ich es möchte :(
Siehe hier:
[ externes Bild ]
Zum Vergrößern klicken

Eigentlich soll nicht für jeden Ausdruck eine eigene große Haupttabelle (die mit dem Bildchen links) erstellt werden, sondern nur eine einzige solche, in der alle Ausdrücke gelistet werden.

Was kann ich dagegen tun?

mfg Pingu
Skippy
Mitglied
Beiträge: 212
Registriert: 19.08.2006 11:10
Wohnort: Eisenberg

Beitrag von Skippy »

also den ersten Teil des fehler seh ich schon auf den ersten blick

Code: Alles auswählen

           foreach($tmpLng as $name => $translation) 
           { 

...


                         $template->assign_block_vars('switch_edit_file_costum.lang', array( 
                          "NAME" => $name, 
                          "TRANSLATION" => $transl) 
                         ); 

mit anderen Worten

für jeden eintrag in der language datei füge eine kopie des blockes switch_edit... an dem template an


und <!-- BEGIN lang -->

sollte das ist der Block den du wiederholen möchtest
Pingu625

Beitrag von Pingu625 »

Jo schon klar, das soll ja so sein; und in der Version 1.1.0 (siehe Moddatenbank hier) klappt das so!

Aber jetzt in der neuen Version nicht!
<!-- BEGIN lang -->
<tr>
<td class="row2" align="center">{switch_edit_file_costum.lang.NAME}</td>
<td class="row1" align="center">{switch_edit_file_costum.lang.TRANSLATION}</td>
</tr>
<!-- END lang -->
Das <!-- BEGIN lang --> ist ja auch vorhanden.

Ich habe das ganze nach dem Schema:
Wie ist die Template Syntax von PHPBB aufgebaut? Abschnitt Schleifen

mfg Pingu
Skippy
Mitglied
Beiträge: 212
Registriert: 19.08.2006 11:10
Wohnort: Eisenberg

Beitrag von Skippy »

tut mir leid war wohl gestern doch zu lang gefeiert.

ähm dann lehn ich mich mal aus dem fenster und vermute das es daran liegt.

das du den switch
<!-- END switch_edit_file_costum -->

nicht vorher aktivierst

also diese zeile irgendow vor dem for each
$template->assign_block_vars('switch_edit_file_costum', array());

denn zumindest wenn ich mir die Mods an denen ich grad rumpfusche wird der äußere Block zuerst aktiviert und dann kommt erst die schleife
Pingu625

Beitrag von Pingu625 »

Okay ;) Ich werde das mal ausprobieren :)

Danke erstmal
Pingu625

Beitrag von Pingu625 »

Das hat funktioniert!

Nun steht der Mod vor dem neuen Release! Nur noch englische Sprachdateien fehlen!

Leider bin ich nicht so gut in englisch :(
Aber vllt. könnte ja irgendjemand mir helfen und folgende Variablen übersetzen ;)

Code: Alles auswählen

//
// Language
//
$lang['Lang_mod_info'] = 'Dieses Forum hat den Sprach Einstellungs Mod (by Pingu) installiert.';
$lang['Lang_t_settings'] = 'Einstellungen Allgemein';
$lang['Lang_max_restore_points'] = 'Anzahl der maximal erlaubten Wiederherstellungspunkte.';
$lang['Lang_sleep_settings'] = 'Anzahl der Sekunden, bis die Sprach Wiederherstellung bzw. Sprach Fehlerbehebung geladen ist.';
$lang['Lang_auto_restore'] = 'Sollen die aufgeführten Tools automatische Wiederherstellungspunkte erstellen?';
$lang['Lang_max_restore_points_explain'] = 'Wenn diese Einstellung auf 0 steht, wird keine Beschränkung gesetzt.<br>Ist eine Beschränkung gesetzt und es soll ein neuer Punkt erstellt werden, so wird der älteste gelöscht.';
$lang['Lang_sleep_explain'] = 'Diese Funktion schützt sie vor übermäßigem Traffic. Falls diese Funktion den Wert 0 erhält, öffnet sich trotzdem noch ein Hinweisfenster.';
$lang['Lang_auto_restore_explain'] = 'Tools, die bei JA automatisch Punkte setzen:<br><u>automatische Fehlerbehebung</u>, <u>Wiederherstellen eines Wiederherstellungspunktes</u>';
$lang['Lang_config_title'] = 'Sprach Administration';
$lang['Lang_settings_title'] = 'Sprach Konfiguration';
$lang['Lang_debug_title'] = 'Sprach Fehlerbehebung';
$lang['Lang_config'] = 'Hier kannst du die Spracheinstellungen ändern.';
$lang['Lang_debug'] = 'Hier kannst du Fehler in den Sprachdateien beheben.';
$lang['Lang_settings'] = 'Hier kannst du die Einstellungen ändern.';;
$lang['Lang_lang_a'] = 'Wähle eine Sprache <b>(*1)</b>:';
$lang['Lang_lang_b'] = 'Wähle eine Sprache <b>(*2)</b>:';
$lang['Lang_file'] = 'Wähle eine Datei <b>(*1)</b>:';
$lang['Lang_edit'] = 'Editiere die Datei <b>(*1)</b>:';
$lang['Lang_delete_explains'] = 'Lösche Sprachvariablen:';
$lang['Lang_new_explains'] = 'Definiere neue Sprachvariablen:';
$lang['Lang_info'] = '<b><br>Die gewählte Datei war keine gültige Sprachdatei.<br>Du kannst sie jetzt jedoch als Dokument editieren.<br><br></b>';
$lang['Lang_full'] = 'Öffne ein Dokument im language oder language/email Ordner und bearbeite es.';
$lang['Lang_costum'] = 'Öffne ein gültiges Sprachdokument (z.B. lang_main.php) und bearbeite es in der Costum-Mode <b>(*1)</b>.';
$lang['Lang_costum_explain'] = 'In der Costum-Mode siehst du den Namen der Übersetzung und die Übersetzung selbst.<br>In diesem Modus kannst du die Übersetzungen bearbeiten.';
$lang['Lang_costum_plus'] = 'Öffne ein gültiges Sprachdokument (z.B. lang_main.php) und bearbeite es in der Costum-Plus-Mode <b>(*2)</b>.';
$lang['Lang_costum_plus_explain'] = 'In der Costum-Plus-Mode siehst du den Namen der Übersetzung und die Übersetzung selbst, sowie eine Orientierungsübersetzung.<br>In diesem Modus kannst du die Übersetzungen bearbeiten.';
$lang['Lang_explains'] = 'Erklärungen';
$lang['Lang_t_mode'] = 'Moduswahl';
$lang['Lang_t_lang'] = 'Sprachwahl';
$lang['Lang_t_file'] = 'Dateiauswahl';
$lang['Lang_t_result'] = 'Ergebnis';
$lang['Lang_t_action'] = 'Weitere Aktionen';
$lang['Lang_t_info'] = 'Information';
$lang['Lang_t_edit'] = 'Dokument editieren';
$lang['Lang_t_edit_costum'] = 'Sprachdatei editieren';
$lang['Lang_t_delete'] = 'Sprachvariablen löschen';
$lang['Lang_t_new'] = 'Neue Sprachvariablen definieren';
$lang['Lang_t_select'] = 'Wiederherstellungspunkt wählen';
$lang['Lang_lang_explains'] = 'Wähle die Sprache, in der das zu bearbeitende Dokument geöffnet werden soll.';
$lang['Lang_lang_plus_explains'] = 'Wähle die Sprache, deren jeweilige Übersetzungen du zur Orientierung angezeigt haben willst.';
$lang['Lang_file_full_explains'] = 'Wähle die Datei, die du als Dokument bearbeiten willst. Wählst du den email-Ordner, hast du nochmals die Möglichkeit eine Datei in diesem Ordner zu wählen.';
$lang['Lang_file_costum_explains'] = 'Wähle eine gültige Datei, deren Übersetzungen du bearbeiten willst. Wählst du eine ungültige Datei, wirst du darüber informiert und die Datei kann als Dokument geöffnet werden.';
$lang['Lang_edit_full_explains'] = 'Hier kannst du die Datei gemäß der gültigen PHP-Syntax editieren. Für mehr Informationen siehe <a href="http://www.phpbb.de">hier</a>.';
$lang['Lang_edit_costum_explains'] = 'Hier kannst du die Übersetzungen editieren. Die Ausdrücke sind festgelegt und sind nicht editierbar.';
$lang['Lang_edit_costum_plus_explains'] = 'Hier kannst du die Übersetzungen editieren. Die Ausdrücke sind festgelegt und sind nicht editierbar. Zusätzlich siehst du noch eine Übersetzung in einer von dir gewählten Sprache.';
$lang['Lang_return_to_edit'] = 'Öffne die Datei als Dokument.';
$lang['Lang_return_to_index'] = 'Klicke %shier%s, um zum Sprach Administration Index zu gelangen.';
$lang['Lang_return_to_debug_index'] = 'Klicke %shier%s, um zum Sprach Fehlerbehebungs Index zu gelangen.';
$lang['Lang_return_to_manage_index'] = 'Klicke %shier%s, um zum Sprach Wiederherstellungs Index zu gelangen.';
$lang['Lang_return_to_settings_index'] = 'Klicke %shier%s, um zum Sprach Konfigurations Index zu gelangen.';
$lang['Lang_return_to_admin_index'] = 'Klicke %shier%s, um zum Admin Index zu gelangen.';
$lang['Lang_home'] = 'Gehe zurück zum Admin Index.';
$lang['Lang_back'] = 'Gehe zum Index der Sprach Fehlerbehebung.';
$lang['Lang_back_manage'] = 'Gehe zum Index der Sprach Wiederherstellung.';
$lang['Lang_checked'] = 'Überprüfung abgeschlossen.';
$lang['Lang_error'] = 'Der gewählte Modus existiert nicht!';
$lang['Lang_t_name'] ='Name der Sprachvariable';
$lang['Lang_t_translation'] = 'Übersetzung';
$lang['Lang_t_translation_plus'] = 'Zusatzübersetzung';
$lang['Lang_no_changes'] = 'Das Dokument/Die Datei wurde nicht geändert! Es wurden keine Änderungen vorgenommen.';
$lang['Lang_updated'] = 'Das Dokument wurde erfolgreich geändert.';
$lang['Lang_updated_plus'] = 'Die Datei wurde erfolgreich geändert.';
$lang['Lang_delete_now'] = 'Auswahl Löschen';
$lang['Lang_back_to_edit'] = 'Zurück';
$lang['Lang_back_to_edit_after_save'] = 'Zurück zum Bearbeiten der Datei.';
$lang['Lang_delete_checkbox'] = 'Zu löschende Sprachvariablen';
$lang['Language'] = 'Sprache';
$lang['Debugging'] = 'Fehlerbehebung';
$lang['Lang_check_new'] = 'Überprüfe die Dateien und zeige fehlerhafte Dateien an.';
$lang['Lang_debug_files'] = 'Behebe Fehler in den Sprachdateien.';
$lang['Lang_debug_files_now'] = 'Behebe nun die Fehler mit Hilfe der eingebauten Funktion.';
$lang['Lang_debug_files_main'] = 'Behebe die Fehler manuell in der Sprach Administration.';
$lang['Lang_check_files_again'] = 'Überprüfe die Dateien nochmals, um zu sehen, ob alle Fehler behoben wurden.';
$lang['Lang_filename'] = 'Dateiname';
$lang['Lang_status'] = 'Status';
$lang['Lang_right'] = 'Okay';
$lang['Lang_wrong'] = 'Fehlerhaft';
$lang['Lang_number_of_errors_total'] = 'Anzahl Fehler in der Datei gesamt';
$lang['Lang_number_of_errors_in_transl'] = 'Anzahl Fehler in den Übersetzungen';
$lang['Lang_number_of_errors_in_name'] = 'Anzahl Fehler im Namen der Variablen';
$lang['Lang_number_of_errors_in_content'] = 'Anzahl Fehler im Wert der Variablen';
$lang['Lang_field_size'] = 'Feldgr&ouml;&szlig;e';
$lang['Lang_debugging_complete'] = 'Fehler in den Sprachdateien wurden erfolgreich korregiert.';
$lang['Lang_completed'] = 'Fertig überprüfte und geänderte Dateien';
$lang['Lang_need_content'] = 'Dieses Feld benötigt einen Inhalt!';
$lang['Lang_new'] = 'Neuer Eintrag';
$lang['Lang_delete'] = 'Löschmenü';
$lang['Lang_vars_deleted'] = 'Die gewählten Sprachvariablen wurden erfolgreich gelöscht!';
$lang['Lang_restore_files'] = 'Stelle alte Sprachdateien wieder her.';
$lang['Lang_timeout_error'] = 'Dieses Tool beinhaltet einige Funktionen, die bei großen Foren zu einem Timeout-error führen können.<br>Ein Timeout-error erfolgt, wenn die Ausführung eines Scriptes zu lange dauert.';
$lang['Lang_sleep'] = '<b>Dieses Tool wird aus Sicherheitsgründen immer erst nach 5 Sekunden geladen!</b><br>Dies hat den Vorteil, dass kein übermäßiger Traffic entstehen kann, indem man das Tool zu oft hintereinander startet.';
$lang['Lang_important_note'] = 'Wichtige Hinweise';
$lang['Lang_select_restore_point'] = 'Wähle einen Wiederherstellungspunkt:';
$lang['Lang_select_restore_point_explains'] = 'Die Wiederherstellungspunkte sind nach folgendem Schema aufgelistet:<br>Jahr-Monat-Tag - Stunde:Minute:Sekunde';
$lang['Lang_restore_complete'] = 'Die Wiederherstellung wurde erfolgreich abgeschlossen.';
$lang['Lang_completed_restore'] = 'Wiederhergestellte Dateien';
$lang['Lang_new_restore_point_complete'] = 'Der neue Wiederherstellungspunkt wurde erfolgreich erstellt und ist nun verfügbar!';
$lang['Lang_new_restore_point_changed_complete'] = 'Die Daten des Wiederherstellungspunktes wurden erfolgreich geändert.';
$lang['Lang_sleep_javascript'] = 'Dieses Tool wird aus Sicherheitsgründen immer erst nach den in der Konfiguration eingestellten Anzahl an Sekunden geladen! Dies hat den Vorteil, dass kein übermäßiger Traffic entstehen kann, indem man das Tool zu oft hintereinander startet.';
$lang['Lang_name'] = 'Name';
$lang['Lang_description'] = 'Beschreibung';
$lang['Lang_data'] = 'Daten zur Erstellung des Wiederherstellungspunktes:';
$lang['Lang_data_change'] = 'Daten zum Ändern des Wiederherstellungspunktes:';
$lang['Lang_t_data'] = 'Daten Eingabe';
$lang['Lang_new_restore_point'] = 'Erstelle einen neuen Wiederherstellungspunkt.';
$lang['Lang_restore'] = 'Hier kannst du Wiederherstellungspunkte bearbeiten, erstellen und wiederherstellen.';
$lang['Lang_restore_title'] = 'Sprach Wiederherstellung';
$lang['Restore'] = 'Wiederherstellung';
$lang['Lang_t_manage_restore_points'] = 'Wiederherstellungspunkte Verwaltung';
$lang['Lang_manage_restore_points'] = 'Verwalte die Wiederherstellungspunkte: Du kannst sie löschen und umbenennen.';
$lang['Lang_timestamp'] = 'Zeitpunkt';
$lang['Lang_manage_restore_point_explains'] = 'Die Zeitpunkte sind nach folgendem Schema aufgelistet:<br>Jahr-Monat-Tag - Stunde:Minute:Sekunde';
$lang['Lang_delete_this'] = 'Lösche deine Auswahl';
$lang['Lang_change_name'] = 'Name und Beschreibung ändern';
$lang['Lang_delete_restore_point'] = 'Löschauswahl';
$lang['Lang_back_to_manage'] = 'Zurück zur Wiederherstellungspunkte Verwaltung';
$lang['Lang_restore_point_deleted'] = 'Der Wiederherstellungspunkt wurde erfolgreich gelöscht.';
$lang['Lang_restore_point_not_deleted'] = 'Du hast keinen Wiederherstellungspunkt zum Löschen ausgewählt.';
$lang['Lang_reset'] = 'Zurücksetzen';
$lang['Lang_config_updated'] = 'Die Konfiguration wurde erfolgreich geupdated.';
$lang['Lang_no_restore_points'] = 'Keine Wiederherstellungspunkte vorhanden.';
$lang['Lang_save_now'] = 'Speichern';
$lang['Lang_comment'] = 'Kommentar (Eingabe ohne //)';
$lang['Lang_comment_checkbox'] = 'Hinzufügen?';
$lang['Lang_new_checkbox'] = 'Hinzufügen?';
Pingu

PS: Wer mithilft, trägt enorm dazu bei, den Mod fertig zu stellen ;)
Zuletzt geändert von Pingu625 am 28.09.2006 22:02, insgesamt 1-mal geändert.
Skippy
Mitglied
Beiträge: 212
Registriert: 19.08.2006 11:10
Wohnort: Eisenberg

Beitrag von Skippy »

schau doch sicherheitshalber nochmal durch ob manche sachen nicht auch schon in der sowieso vorhanden lang_main zu finden sind

weil ja und nein und hinzufügen wirst da sicherlich schon drinne finden und ein paar andere sachen sehe ich da auch sofort die mir bekant vorkommen.

werd aber morgen nochmal schauen da hab ich noch ein paar sachen gesehen
Pingu625

Beitrag von Pingu625 »

Hi! Danke für den Hinweis!
Ich hab gar nicht gewusst, dass die lang_main auch im Adminbereich gilt :o

Ich habe meinen oberen Post editiert und unnötige Dinge gestrichen.
Zwar sind 2 oder 3 noch doppelt (eigentlich ja nicht, da meine alle Prefix Lang_ haben), aber diese Variablen haben in der lang_main eine andere Bedeutung! Beispielsweise:
$lang['Name'] und $lang['Lang_name'] haben denselben Wortlaut, aber unterschiedliche Bedeutungen!

$lang['Name'] steht für den Nachnamen, meine Variable steht für einen bestimmten Namen. Deshalb müssen diese Variablen drin bleiben, damit es im Script keine Verwechselungen gibt!

Pingu
Skippy
Mitglied
Beiträge: 212
Registriert: 19.08.2006 11:10
Wohnort: Eisenberg

Beitrag von Skippy »

dann kannstde z.b. noch folgendes Löschen

$lang['Lang_delete_now'] = 'Auswahl Löschen';

und in der php an der stelle wo du $lang['Lang_delete_now'] einträgst

nimmst du dann $lang['Delete_marked']


dies steht in der lang_main
$lang['Delete_marked'] = 'Markierte löschen';

sowas macht dir und anderen spätere übersetzungen einfacher ;-) is zwar bei der erstellung ne schweine arbeit aber My Gott

ich werde dennoch morgen mal schauen was noch so raus geht ;-)
Pingu625

Beitrag von Pingu625 »

Okay ;)
Vielen Dank :)

Pingu
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“