Localization problem with Wordpress 2.3

I’ve transferred a wordpress system to another server which runs PHP 5. The language file didn’t work anymore. After one annoying hour I’ve found out that the gettext functions are buggy.

Solution:

That’s all.

Keywords: wordpress, localization, php 5, language file, problem, 64 bit, gettext, de_DE.mo

That’s just how I feel

I’ve been up at this all night long
I’ve been drowning in my sleep
I’ve prayed for your safe place
And its time for us to leave

Time is running, its running on empty and the gas is running out
I’ve decided that tonight is the night
That I let love aside
Full speed ahead this seems to be the place
I’ve seen this once before
Planned perfection sought in my dreams
Hoping this would take you home

My knuckles have turned to white
There’s no turning back tonight
Kiss me one last time

Around this turn where the cross will cast your shadow
The people will all gather
To remember such a day
Where the flames grew as high as trees
And the world stopped
It stopped for you and me

My knuckles have turned to white
There’s no turning back tonight
Kiss me one last time
(Shut your eyes)
My knuckles have turned to white
There’s no turning back tonight
(So hold on tight)
Kiss me one last time
(Shut your…)

I will now bring new meaning to the word alone
Endless nights of dreaming of life
And the days we should have spent here

Drowning in my sleep I’m drowning in my sleep
Drowning in my sleep I’m drowning in my sleep
(x6)

Glass shatters and comes to a halt
I thought we’d be there by now
I thought it would be so much quicker than this

Pain has never been so brilliant
I made sure you were buckled in
Now you can walk hand in hand
Hand in hand with Him

My knuckles have turned to white
There’s no turning back tonight
Kiss me one last time
(Shut your eyes)
My knuckles have turned to white
There’s no turning back tonight
(So hold on tight)
Kiss me one last time
(Shut your…)

Crises and how to act

crisis = emo

Rails 1.2: has_and_belongs_to_many-Beziehung (habtm) mit zusätzlichen Attributen

Die habtm-Funktionalität in Rails ist für n:m-Beziehungen gedacht. Beispiel: ein User soll Teil verschiedener Gruppen sein können und einer Gruppe sollen mehrere User angehören können. Was aber, wenn jede dieser Beziehungen zusätzliche Attribute mit sich bringen soll? Beispiel: User 1 hat in Gruppe 1 die Rolle “admin” inne, in Gruppe 2 “member” etc. Hierfür bietet sich sich eine “has_many through”-Beziehung an. Weiteres unter http://www.infused.org/2005/12/06/has-many-through-association/

Screamo Forever

great screamo/post-hardcore tune

Rails 1.2: nl2br für Rails

Es lebe die nl2br-Funktion! Nur leider hatte ich sie bei Rails bzw. Ruby nicht gefunden (inzwischen schon, siehe Ende des Beitrags). Darum hatte ich kurzerhand ein klitzekleines Plugin namens EnhanceString für Rails geschrieben, dass die String-Objekte um die nl2br-Funktion erweitert.

Für Ahnungslose: nl2br() ist eine Funktion der PHP Syntax, die alle Zeilenumbrüche eines Strings in dessen HTML-Entsprechung <br/> umwandelt.

Installation

  • Plugin herunterladen
  • In das Verzeichnis /vendor/plugins der Applikation auspacken
  • Webserver neu starten

Anwendung

“Erstens..,\nZweitens..”.nl2br

gibt

=> “Erstens..,<br/>Zweitens..”

zurück.

Die Funktion simple_format aus dem TextHelper von Rails regelt dies eleganter. Es werden zusätzlich <p>-Tags um den zu formatierenden String und außerdem bei zwei aufeinander folgenden Zeilenumbrüche gesetzt. Die Zeilenumbrüche bleiben allerdings erhalten, das <br/>-Tag wird hinter jedem einzelnen Zeilenumbruch hinzugefügt.
Beispiel

Rails 1.2: Fehlender Zeichensatz der Rails console (irb)

Die console von Rails 1.2 akzeptiert unter einem deutschen Windows leider nicht von Haus aus alle Zeichen. Darunter die wirklich oft benötigten eckigen Klammern [], der senkrechte Strich | oder auch die Tilde ~

Ich habe einige Beschreibungen im Netz gefunden, die leider nur teilweise funktionierten. Die einfachste Lösung ist es, die –readline Option in der console.rb zu deaktivieren. Nun funktionieren zwar die Sonderzeichen wieder, allerdings ist neben dem sogenannten “auto-complete” auch das Stöbern durch die console History mit den Pfeiltasten deaktiviert. Um irb und die Rails console im vollen Funktionsumfang nutzen zu können sind nur zwei kleine Handgriffe nötig:

1. Die Datei .inputrc herunterladen

2. In der irb.bat (zu finden unter /ruby/bin) folgendes unter der @echo off-Zeile hinzufügen:

SET INPUTRC=C:\.inputrc

wobei C:\.inputrc auf den korrekten Speicherort der Datei angepasst werden muss.

Achtung! Anführungszeichen bei langen Dateinamen werden nicht richtig interpretiert. Statt

SET INPUTRC=”C:\Programme\mein ruby verzeichnis\.inputrc”

daher

SET INPUTRC=C:\Programme\mein ruby verzeichnis\.inputrc

verwenden!

Beim nächsten Starten von irb oder der Rails console funktionieren nun sowohl die Spezialzeichen als auch die readline-Funktionalität.

Beim Nutzen vom breakpointer oder ruby-debug darauf achten, dass in der entsprechenden Umgebung SET INPUTRC=C:\.inputrc ausgeführt wurde.

Keywords: special characters, german, console, irb, breakpointer, rails, problem, readline, noreadline, tilde, eckige klammer, geschweifte klammer, bracket, brace, at symbol

Ruby: a ||= b

a ||= b

means

a = b if a.nil? || a == false

Rails 1.2: Controller in Unterverzeichnissen organisieren

Manche Controller werden besser unter einem “Über-Controller” zusammengefasst, um die Struktur sowohl in den Quelltextverzeichnissen als auch in dem URL-Aufbau klar zu halten. So z.B. die Administrationsfunktionen einer Rails-Anwendung. Um eine Benutzer- sowie eine Rechte-Verwaltung unter der Übergruppe “Administration” zu führen, kann man zuerst die Verzeichnise für die Übergruppe anlegen:

app/controllers/administration/
app/views/administration/

Die Controller für Benutzer- und Rechteverwaltung finden in diesem ersten erstellen Verzeichnis Platz:

app/controllers/administration/user_controller.rb
app/controllers/administration/permission_controller.rb

Die Templates lagern hingegen in einem einzelnen Unterverzeichnis für jeden Controller:

app/views/administration/user/
app/views/administration/permission/

d.h. für den UserController werden die Templates hier erwartet:

app/views/administration/user/list.rhtml
app/views/administration/user/show.rhtml

etc.

Die letzte Änderung findet in den Controllern selbst statt. Sie werden nicht mit:

class UserController < ApplicationController

definiert, sondern mit:

class Administration::UserController < ApplicationController

Die Benutzer- und Rechte-Verwaltung sind jetzt unter:

http://deineSeite/administration/user

und

http://deineSeite/administration/permission

zu erreichen.

Rails 1.2: Deutsche Model-Namen in Rails

Die singularize und pluralize Funktionen von Rails können von Haus aus für die englische Sprache verwendet werden.

Für ein Projekt wollte ich erst deutsche Model-Namen nutzen und habe die Rails-Anwendung dementsprechend angepasst:

In der environment.rb:

Inflector.inflections do |inflect|

# die englischen vorgaben vergessen
inflect.clear

# worte im singular werden mit
# einem “e” für die plural-Form erweitert
inflect.plural /^([a-zA-z]*[^aoieukgh])$/i , ‘\1e

# worte, die im plurar auf e enden, werden
# für die singular-Form um das e gekürzt
inflect.singular /^([a-zA-z]*)e/i, ‘\1′

# spezial regeln für worte, die aus diesen
# regeln herausfallen
# (erstes wort singular, zweites plural)
inflect.irregular ‘mitglied’, ‘mitglieder’

end

Ich habe die Idee jedoch schnell verworfen, da wir besser englische Modelnamen (intern relevant) und deutsche Controllernamen (nach aussen hin, z.B. für Suchmaschinen relevant) verwenden, um so unnötige Routes zu ersparen. Daher können die Regeln sicher noch für einige andere Wörter erweitert werden, falls aus welchen Gründen auch immer, jemand Interesse an deutschen Model-Namen haben sollte.


linkboost