Not logged in. · Lost password · Register
Forum: Non-English Discussion German discussion RSS
Alternative Sprachdateien löschen
Avatar
bttr #1
Member since Sep 2009 · 46 posts
Group memberships: Members
Show profile · Link to this post
Subject: Alternative Sprachdateien löschen
Hallo!

Da ich in meiner DokuWiki-Installation nur die englischen Sprachdateien benötige, haben mich die zig weiteren "lang/LC"-Ordner schon immer ein wenig gestört. Ich habe mich nun endlich mal hingesetzt und eine kleine Batchdatei geschrieben, die diese (für mich) überflüssigen Ordner entfernt. Das dürfte gerade für Leute mit gehostetem Webspace interessant sein, da so der anschließende Upload per FTP deutlich schneller vonstatten geht.

Den nachfolgenden Quellcode einfach mit dem Editor (a.k.a. Notepad) als dw_single_lang.cmd abspeichern und im "DOS-Fenster" (korrekt "Eingabeaufforderung") mit den Optionen DokuWiki-Wurzelverzeichnis und Sprach-Code starten. Beispielsweise entfernt c:\skripte\dw_single_lang d:\Apache\htdocs en alle "lang"-Ordner unterhalb von d:\Apache\htdocs außer die zur englischen Sprache gehörenden. Das gilt auch für Plugins und Templates.

Die Batchdatei wurde von mir nur auf einem deutschen Windows XP Professional SP3 getestet, sollte aber eigentlich ab Windows 2000 in beliebiger Sprache funktionieren. (Ein aktuelles Backup habt ihr ja sicherlich.:-p)

@echo off
if "%1" == "" goto usage
if "%2" == "" goto usage
setlocal
setlocal enabledelayedexpansion
if not exist "%1\doku.php" goto nodw
set /a __overall = 0
for /f "tokens=*" %%I in ('dir /ad /s /b "%1\lang"') do (
  pushd %%I
  set /a __count = 0
  for /f "tokens=*" %%J in ('dir /ad /b') do (
    if not "%%J" == "%2" (
      if "%3" == "verbose" echo removing "%%I\%%J"
      rd /s /q "%%I\%%J"
      set /a __count += 1
    )
  )
  echo !__count! language subfolder^(s^) removed
  echo   from "%%I"
  popd
  set /a __overall += __count
)
echo.
echo !__overall! overall language subfolder(s) removed from "%1"
goto done
:nodw
echo error: invalid DokuWiki root (doku.php missing)
goto done
:usage
echo usage: %0 ^<DokuWiki root^> ^<LC^> [verbose]
echo   ex.: %0 htdocs en
echo.
:done
This post was edited 2 times, last on 2011-10-05, 22:42 by bttr.
Avatar
Taggic (Moderator) #2
Member since Jan 2011 · 777 posts · Location: Gilching, Germany
Group memberships: Global Moderators, Members
Show profile · Link to this post
Schöne Idee und das manuelle Löschen ging mir auch schon auf die Nerven. Leider läßt Dich nicht jeder Hoster auf den cmd. Vielleicht nimmt sich aber jemand die Zeit und setzt das als (Admin) Plugin um.
best regards
Taggic
f-con wiki: http://www.fristercons.de/fcon/
Avatar
bttr #3
Member since Sep 2009 · 46 posts
Group memberships: Members
Show profile · Link to this post
Man muss ja nicht beim Hoster auf die Kommandozeile. Ist ja dann eh eher Linux als Windows. Die Batchdatei soll ja gerade vor dem Upload lokal ausgeführt werden.
Eine Realisierung als DW-Plugin würde ich natürlich ebenfalls begrüßen.
Avatar
Taggic (Moderator) #4
Member since Jan 2011 · 777 posts · Location: Gilching, Germany
Group memberships: Global Moderators, Members
Show profile · Link to this post
Die Sprachdateien bekommst Du schon allein durch die Update Funktion der Plugins u. DW wieder auf den web host
(falls man die Funktion verwendet und nicht erst vorher eine lokale Kopie bereinigt).

Die Logik an sich scheint gar nicht so kompliziert:
- Loop rekursiv durch alle Ordner von "inc" und "lib",
- lösche in den lang-Foldern alle anderen Ordner außer "en" und der konfigurierten DW-Sprache
- und das als Admin Plugin einklinken
... vielleicht probier ich das bei Gelegenheit mal aus.
best regards
Taggic
f-con wiki: http://www.fristercons.de/fcon/
Avatar
bttr #5
Member since Sep 2009 · 46 posts
Group memberships: Members
Show profile · Link to this post
Die Sprachdateien bekommst Du schon allein durch die Update Funktion der Plugins u. DW wieder auf den web host
(falls man die Funktion verwendet und nicht erst vorher eine lokale Kopie bereinigt).

Ich weiß. Aber du hast das Plugin ja noch nicht geschrieben. ;-)
Avatar
Taggic (Moderator) #6
Member since Jan 2011 · 777 posts · Location: Gilching, Germany
Group memberships: Global Moderators, Members
Show profile · Link to this post
Na gut, ich bin ja gar nicht so: http://www.dokuwiki.org/plugin:langdelete  :-)

PS:
Ist gerade erst fertig geworden und hat den Testlauf  auf meinem lokalen DokuWiki bestanden.
Es ist simple und ich erwarte eigentlich keine Probleme (hopefully), höchstens noch weitere Requirements.
best regards
Taggic
f-con wiki: http://www.fristercons.de/fcon/
Avatar
bttr #7
Member since Sep 2009 · 46 posts
Group memberships: Members
Show profile · Link to this post
Nun gibt's endlich mal ein Feedback von mir zu deinem Plugin:
1. Es funktioniert. ;-)
2. Aber es tut nichts, wenn man keinen ISO-Code angibt. Wenn man nur Englisch behalten will, muss man derzeit "en" eingeben, obwohl das Plugin sagt, dass Englisch sowieso beibehalten wird.
3. Der Text "to fully understand how access control works" hat da nichts zu suchen. Den hast du wohl aus dem ACL-Plugin kopiert.
4. "ISO-Codes" ist die deutsche Schreibweise. Das sollte "ISO codes" oder "ISO language codes" heißen.
5. Wäre es evtl. sinnvoll einen Link zu einer Liste mit Codes anzugeben, z.B. http://www.loc.gov/standards/iso639-2/php/English_list.php?
Avatar
Taggic (Moderator) #8
Member since Jan 2011 · 777 posts · Location: Gilching, Germany
Group memberships: Global Moderators, Members
Show profile · Link to this post
zu 1. freut mich, dass es Dir weiter hilft
zu 3. Hm, das ist da wirklich aus dem help.txt vom ACL plugin drin geblieben
zu 4. danke
zu 5. danke, habe einen WP-Interlink und Deinen in der einleitenden Hilfe eingefügt.
        =>3, 4 und 5 sind im nächsten Update entsprechend geändert

zu 2.
Mein Gedanke dabei war, dass keiner einfach mal Knöpfchen drückt, ohne sich der unumkehrbaren Auswirkung bewußt zu sein (Undo is nich). Wenn also alle Sprachen gelöscht werden, auch wenn keine Sprache angegeben ist, dann kann das beim unaufmerksamen Anwender zu ungewollten Systemänderungen führen. Deshalb habe ich nun nur in der lang.php noch ergänzt, dass zumindest ein Sprachcode eingetragen werden muß.
=> Kannst Du damit leben ?

PS:
Update der help und lang Dateien lade ich heute noch in GIT hoch.
best regards
Taggic
f-con wiki: http://www.fristercons.de/fcon/
Avatar
bttr #9
Member since Sep 2009 · 46 posts
Group memberships: Members
Show profile · Link to this post
Hast du fein gemacht! :-) Von mir aus, kann es so bleiben.
Ein paar minimale Rechtschreibänderungen hätte ich noch vorgeschlagen, aber ich will heute mal nicht so pingelig sein.
Vielen Dank für deine Mühe!
Avatar
Taggic (Moderator) #10
Member since Jan 2011 · 777 posts · Location: Gilching, Germany
Group memberships: Global Moderators, Members
Show profile · Link to this post
Gern geschehen aber den kick-off und initialen Code hast Du ja selbst gegeben.

Ein paar minimale Rechtschreibänderungen hätte ich noch vorgeschlagen ....
Immer her damit oder noch besser, du änderst die Sprachdatei(en) und hängst Sie hier an, dann tüte ich die mit ein.
best regards
Taggic
f-con wiki: http://www.fristercons.de/fcon/
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Imprint
This board is powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2015 by Yves Goergen
Current time: 2018-09-23, 14:39:04 (UTC +02:00)