Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Übersetzungen ›

Strings werden nicht gefunden

Eingetragen von Achim Wagenknecht (39)
am 22.06.2011 - 12:36 Uhr in
  • Übersetzungen

Hallo,

ich habe Drupal Commons installiert und die aktuelle deutsche Sprachdatei geladen. Jetzt versuche ich die fehlenden Strings mit admin/build/translate/search oder dem Localization client zu übersetzen. Das klappt auch oft gut, aber es gibt teilweise Strings, die einfach nicht zu finden sind, zum Beispiel

personal account page
oder
Recent activity

Ich sehe die Worte auf der Seite vor mir, aber die Übersetzungswerkzeuge finden sie nicht.

Was tun?

Schoene Gruesse,
Achim

‹ Anzeige von noch nicht übersetztem Inhalt D7 mehrsparch CCK-Feld ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie ich es vermutet habe. Ich

Eingetragen von drupalino (1064)
am 23.06.2011 - 23:43 Uhr

Wie ich es vermutet habe. Ich habe mir gerade einmal drupal commons gezogen und habe nach 'personal account page' gesucht und dieser String kommt aus dem hartbeat modul und ist nicht in einer translatuon funktion (bsp t(); ) und ist somit nicht übersetzbar.

Sie Zeile 638 von heartbeat.module ( 'message' => '!username\'s personal account page has been changed.',)

Das hat der entwickler dann wohl versäumt!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn man so etwas findet,

Eingetragen von wla (9461)
am 24.06.2011 - 08:09 Uhr

Wenn man so etwas findet, sollte man bei dem Modul einen Bug-Report aufmachen, denn das ist ein echtes Versäumnis des Programmierers.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, danke für den Hinweis.

Eingetragen von Achim Wagenknecht (39)
am 24.06.2011 - 12:25 Uhr

Hallo,

danke für den Hinweis. Statt

'message' => '!username\'s personal account page has been changed.',

sollte es also

'message' => t('!username\'s personal account page has been changed.'),

heißen, richtig? Aber man muss doch sicher noch die Funktion deklarieren oder eine Include-Datei einbinden, damit das funktioniert?

Und unter

admin/build/heartbeat

steht:

"The messages are passed to the t-function when parsed to view."

Das verstehe ich wiederum so, dass der Entwickler die Funktion an anderer Stelle implementiert hat. Ich hatte die Datei heartbeatparser.inc im Verdacht, aber da finde ich die t-Funktion nicht.

Uebrigens gibt es auch einen Ordner "translations" und dieser enthält die Dateien "heartbeat.pot" und "nl.po". Vielleicht sollte ich die bearbeiten?

Gruebel...

Schoene Gruesse,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

die "t()-funktion" ist eine

Eingetragen von drupalino (1064)
am 24.06.2011 - 12:35 Uhr

die "t()-funktion" ist eine drupalfunktion und muss nicht vom entwickler implementiert werden. Der entwickler muss nur seine "harten-strings" in die t()-funktion packen, damit sie übersetzt werden können.

Zitat:

Uebrigens gibt es auch einen Ordner "translations" und dieser enthält die Dateien "heartbeat.pot" und "nl.po". Vielleicht sollte ich die bearbeiten?

dann schau da mal ob Du deine Fehlenden Strings findest, ich glaube es nicht
po-dateien dienen dazu um größere Übersetzungen auf eine andere Art und weise zu machen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es scheint auch nicht nur das

Eingetragen von Achim Wagenknecht (39)
am 25.06.2011 - 11:58 Uhr

Es scheint auch nicht nur das Heartbeat-Modul zu betreffen. Ich habe jetzt z.B. auf der Seite
node/add/poll
den String
"Assigned Tags:"
gefunden und übersetzt, kann aber direkt darunter den String
"Press enter or click '+' between tags."
nicht finden.

Übrigens habe ich auch mal probeweise die t-Funktion an der Stelle im Quelltext direkt eingebaut, aber das hat auch nichts bewirkt.

Zwischenzeitlich habe ich auch den Entwickler kontaktiert und einen Bug Report angelegt.

Vielleicht ist es ein Commons-Problem?

Schöne Grüße,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wie, du hast die t-Funktion

Eingetragen von Exterior (2903)
am 25.06.2011 - 12:20 Uhr

Wie, du hast die t-Funktion im Quelltext eingebaut? Was genau hast du denn da gemacht?
(Ich ahne böses)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Am Ende muss es so

Eingetragen von Kasalla (7)
am 25.06.2011 - 12:54 Uhr

Am Ende muss es so aussehen:

'message' => t('!username\'s personal account page has been changed.', array('!username' => $username)),

t() muss nicht separat includiert werden.
Allerdings solltest du nicht "!username" verwenden, weil dies den internen check (via check_plain()) verhindert. Besser ist "%username". Das wäre sicher.
"!username" (also das "!" vor dem Platzhalter) nutzt man nur, wenn man ganz sicher weiss, dass der string sicher ist und beispielsweise HTML enthalten MUSS. Zum Beispiel in l() (Erzeugen eines Links).

$link = l($linktext, $url);
dsm(t('Hier gehts zu meiner !website', array('!website' => $link)));

Damit du übersetzen kannst im Admin-Bereich, muss Du einmal die Seite, auf der der String ausgegeben wird, aufrufen. Alternativ kannst Du auch den Cache leeren.

Die t()-Funktion muss im Grunde immer und überall verwendet werden. Eine der wenigen Ausnahmen ist die Erstellung eines Menüs via hook_menu(). Dort wird der Titel nur in Hochkommata angegeben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Och nö, rede ihm doch nicht

Eingetragen von Exterior (2903)
am 25.06.2011 - 13:11 Uhr

Och nö, rede ihm doch nicht ein, dass er in einem Modul herum hacken soll. Never touch the core, weder von Drupal selbst, noch von Contrib-Modulen. Ein Update und all deine Änderungen sind fort.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Och nö, rede ihm doch

Eingetragen von drupalino (1064)
am 25.06.2011 - 14:54 Uhr
Zitat:

Och nö, rede ihm doch nicht ein, dass er in einem Modul herum hacken soll. Never touch the core,

Na hab ich auch nicht gemacht, ich hab lediglich die Ursache geschildert ;-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe Kasalla gemeint ;)

Eingetragen von Exterior (2903)
am 25.06.2011 - 15:09 Uhr

Ich habe Kasalla gemeint ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ja, stimmt schon, aber

Eingetragen von Kasalla (7)
am 27.06.2011 - 09:13 Uhr

Ja, stimmt schon, aber vielleicht hilfts ja irgendwem anders, der ein eigenes Modul entwickelt. :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Herzlichen Dank für alle eure

Eingetragen von Achim Wagenknecht (39)
am 27.06.2011 - 15:27 Uhr

Herzlichen Dank für alle eure Beiträge. Keine Sorge: Ich mache zwar manchmal Dummheiten, aber dieser Quellcode-Edit war wohlüberlegt und an der richtigen Stelle. Ich habe dafür einen meiner Test-Server genutzt und den Original-Code vorher gesichert. Ein eigenes Modul habe ich in diesem Fall nicht erzeugt, das finde ich für ein temporäres Experiment an einer einzelnen Zeile übertrieben.

Aber die ursprüngliche Frage ist immer noch offen: Warum werden manche Strings von der Übersetzungs-Funktion nicht gefunden?

Weiter auf Fehlersuche grüßt euch
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Warum werden manche

Eingetragen von Exterior (2903)
am 27.06.2011 - 15:42 Uhr
Zitat:

Warum werden manche Strings von der Übersetzungs-Funktion nicht gefunden?

Weil sie eben nicht mittels t() eingefügt wurden, sondern hart im Quelltext stehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es wird immer seltsamer.

Eingetragen von Achim Wagenknecht (39)
am 27.06.2011 - 16:13 Uhr

Es wird immer seltsamer. Jetzt finde ich die Strings mit dem Standard-Übersetzungs-Tool, aber nicht mit dem Localization Client. Und die Übersetzungen, die ich eintrage, werden nicht angezeigt...

Schöne Grüße,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Exterior

Eingetragen von Achim Wagenknecht (39)
am 27.06.2011 - 16:15 Uhr
Exterior schrieb
Zitat:

Warum werden manche Strings von der Übersetzungs-Funktion nicht gefunden?

Weil sie eben nicht mittels t() eingefügt wurden, sondern hart im Quelltext stehen.

Ja, aber dann hätte sich das ja an der einen Stelle mit meinem Quellcode-Experiment ändern müssen.

Schöne Grüße,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst du mal die

Eingetragen von Exterior (2903)
am 27.06.2011 - 16:37 Uhr

Kannst du mal die entsprechende Code-Zeile vor und nach deiner Änderung posten?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Exterior schrieb Kannst du

Eingetragen von Achim Wagenknecht (39)
am 27.06.2011 - 16:44 Uhr
Exterior schrieb

Kannst du mal die entsprechende Code-Zeile vor und nach deiner Änderung posten?

Klar. In diesem Ordner
/srv/www/htdocs/drupal_commons/profiles/drupal_commons/modules/contrib/heartbeat/
in dieser Datei
heartbeat.module
habe ich dies geändert:
// 'message' => t('!username\'s personal account page has been changed.'), // vorher
'message' => t('!username\'s personal account page has been changed.', array('!username' => $username)), //nachher

CU,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: // 'message' =>

Eingetragen von drupalino (1064)
am 27.06.2011 - 17:07 Uhr
Zitat:

// 'message' => t('!username\'s personal account page has been changed.'), // vorher
'message' => t('!username\'s personal account page has been changed.', array('!username' => $username)), //nachher

dass heisst aber auch, dass du dir wohl das heartbeat modul neu gezogen hast als update,

denn in der Version habe ich das ganze ohne t() gefunden. ?????

Der einzige Unterschied, den du dort hast ist eben, dass der Username ersetzt wird!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Scheint ein Commons-Problem zu sein

Eingetragen von Achim Wagenknecht (39)
am 27.06.2011 - 17:08 Uhr

Wenn ich diesen Thread hier richtig verstehe, hängt das ganze mit der Commons-Distribution zusammen:
http://drupal.org/node/1071068
Anscheinend sind sie dabei, einen Übersetzungs-Server aufzusetzen, aber der sieht noch nicht so richtig fertig aus...
http://translate.commons.acquia.com/

CU,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

drupalino schrieb Zitat: //

Eingetragen von Achim Wagenknecht (39)
am 27.06.2011 - 17:10 Uhr
drupalino schrieb
Zitat:

// 'message' => t('!username\'s personal account page has been changed.'), // vorher
'message' => t('!username\'s personal account page has been changed.', array('!username' => $username)), //nachher

dass heisst aber auch, dass du dir wohl das heartbeat modul neu gezogen hast als update,

denn in der Version habe ich das ganze ohne t() gefunden. ?????

Der einzige Unterschied, den du dort hast ist eben, dass der Username ersetzt wird!

Sorry, Cut'n'paste-Error. So sieht es tatsächlich im Quellcode aus:

Zitat:

// 'message' => '!username\'s personal account page has been changed.', // vorher
'message' => t('!username\'s personal account page has been changed.', array('!username' => $username)), //nachher

CU,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hast du nach der Änderung mal

Eingetragen von Exterior (2903)
am 27.06.2011 - 17:29 Uhr

Hast du nach der Änderung mal den Drupal-Cache geleert und nen CronJob laufen lassen?

Ändere doch mal probehalber den Text an sich, damit du siehst, ob die neue Version verwendet wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Cache war ohnehin

Eingetragen von Achim Wagenknecht (39)
am 28.06.2011 - 08:48 Uhr

Cache war ohnehin ausgeschaltet. Cron-Job hab ich jetzt mal laufen lassen, dann die fragliche Profil-Seite erneut geändert, um einen neuen Heartbeat-Eintrag zu erzeugen. Ergebnis: Der neue Eintrag wird mit dem geänderten String erzeugt, der alte wird aber weiterhin mit dem alten String angezeigt.

Es weist immer mehr darauf hin, dass das Problem tiefer in der Commons-Distribution steckt.

Schöne Grüße,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, wo gibt es denn die

Eingetragen von aloajoe (29)
am 11.07.2011 - 21:04 Uhr

Hallo,
wo gibt es denn die .de.po datei für drupal commons denn überhaupt?
hab auf drupal.org nur die von drupal commons release updater gefunden.Ist das die richtige?

lg, aloajoe

  • Anmelden oder Registrieren um Kommentare zu schreiben

aloajoe schrieb Hallo, wo

Eingetragen von Achim Wagenknecht (39)
am 12.07.2011 - 07:28 Uhr
aloajoe schrieb

Hallo,
wo gibt es denn die .de.po datei für drupal commons denn überhaupt?
lg, aloajoe

Gar nicht. Die kommen nicht in die Pötte mit der Übersetzung. Ich werde Commons wieder löschen und baue meine Site nochmal Modul für Modul auf Basis einer nackten Drupal-Installation auf.

Schöne Grüße,
Achim

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 2 Tagen
  • Hey danke
    vor 2 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 3 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 3 Wochen 5 Tagen
  • In der entsprechenden View
    vor 3 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 5 Tagen
  • gelöst
    vor 6 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20454

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 26 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association