Testar att få min webbsida tvåspråkig - Engelska + Svenska.
Kör Drupal 6.8
Jag har provat modulen i18n "Internationalization" som verkar vara enkel att jobba med.
Till den har jag lagt till modulerna
- Language icons
- Translation overview
- Localization client
Det finns också en patch " Patch pending for 6.x version" (osäker på om det är den som måste köras för att det skall funka)
Jag har fått upp ikonerna "Svenska och Engelska" samt lyckats att översätta noderna med funktionen "translate"
Det mesta funkar alltså som det skall, men jag får ett felmeddelande:
"Duplicate entry '/feed-sv' for key 'dst_language' query: INSERT INTO url_alias (src, dst, language) VALUES ('node/71/feed', '/feed', 'sv') in C:\Program Files\BitNami Drupal 6 Stack\apps\drupal\htdocs\modules\path\path.module on line 112."
Location http://asus-dator/drupal/node/add/page?translation=70&language=sv
Referrer http://asus-dator/drupal/node/add/page?translation=70&language=sv
Meddelandet kommer upp när jag skapar den noden. - alltså innan jag kör "translate" kommandot
Hoppas nu få något tips på vad detta kan vara.
Om någon har någon bra manual eller tips på hur man jobbar med dessa moduler på bästa sätt eller har andra moduler som funkar bättre eller enklare - så hör av Er.
Mvh
Håkan
Comments
Känd bugg
Ditt felmeddelande är tydligen en bugg i Drupal core, jag har stött på samma sak. Det finns en patch som sägs lösa problemet.
/ Hannes Lilljequist – SthlmConnection
Hej och tack. Som novis -
Hej och tack.
Som novis - hur gör jag när jag in denna patch? - jag har aldrig gjort det innan.
Mvh
Håkan
Patcha
Här finns en instruktion.
/ Hannes Lilljequist – SthlmConnection
Patch
Försöker nu få till det med patchen för språkhanteringen i D6
Jag har installerat TortoiseSVN för att köra min patch.
Jag har lagt patchfilen "path-module-D6" i samma katalog som den modul som krånglar. Alltså:
C:\Program Files\BitNami Drupal 6 Stack\apps\drupal\htdocs\modules\path
Jag har också sett till att jag har rättigheter som behövs för filerna
Det finns ett kommando i Tortoise som heter "apply patch"
Jag väljer mina min orginalfil path.module och min patch fil och får upp dem i två fönster.
Fråga: - Skall dessa filer mergeas ihop och sen sparas ner i en ny fil??
Kan inte riktigt läsa ut detta i instruktionen.
Mvh Håkan
Har du läst dessa
Har du läst dessa instruktioner?
http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-patch.html
Ett råd är att du installerar Ubuntu virtualiserat (i VMWare t ex) och kör MySQL, PHP och Apache i Linux. Då kan du behålla Windows och köra Linux i sitt eget fönster och får fördelarna från båda systemen. Då kan du också använda dig av *nix-kommandon som diff, patch och grep. Att patcha filer i Linux (eller Mac OS X) är trivialt jämfört med att göra det i Windows.
Jakob Persson - NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Patch
Hej, jag har läst igenom den instruktionen men inte fått till det efter den.
I Tortoise får jag både path.module samt patchfilen på en tvådelad skärm
Är det så enkelt att innehållet i patchen skall in i path.module och då självklart på rätt ställe? eller gör patch kommandot något annat än just jämför filerna, strukturerar den gemensamma och sen sparar ner?
Texten i patchen är kort
Ett annan instruktion skriver att man kan i princip använda textredigerare och lyfta in patchtexten i det dokument man vill ha - förutsatt att man vet vart koden skall in...
Mvh H
--- modules/path/path.module
+++ modules/path/path.module
@@ -104,10 +104,11 @@
// Check for existing aliases.
if ($alias == drupal_get_path_alias($path, $language)) {
// There is already such an alias, neutral or in this language.
- // Update the alias based on alias; setting the language if not yet done.
- db_query("UPDATE {url_alias} SET src = '%s', dst = '%s', language = '%s' WHERE dst = '%s'", $path, $alias, $language, $alias);
+ db_query("UPDATE {url_alias} SET src = '%s' WHERE dst = '%s' AND language = '%s'", $path, $alias, $language);
}
else {
+ // Ensure that no similar aliases exist.
+ db_query("DELETE FROM {url_alias} WHERE dst = '%s' AND language = '%s'", $alias, $language);
// A new alias. Add it to the database.
db_query("INSERT INTO {url_alias} (src, dst, language) VALUES ('%s', '%s', '%s')", $path, $alias, $language);
}
Definition av en patch
Definition av en patch file:
"The patch file (also called a patch for short) is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments"
Programmet patch som finns på Unix modifierar fil A (path.module) i enlighet med instruktioner i fil B (path.module.patch). Tortoise ska bara köra patchen. Det du antagligen ser är en diff - hur filen ser ut innan och efter patchen. Kolla om du kan göra så att Tortoise enbart tillämpar patchen på filen.
Jakob Persson - NodeOne
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Så här gör du
Kommandot patch, som också finns till Windows, tolkar en patch-fil, som t.ex. den ovan nämnda, och tolkar den på följande sätt:
I filen som anges efter
---, t.ex.modules/path/path.module, gå till raden med radnummerlsom anges i@@ -l,n +L,N @@, t.ex. rad 104, och ta bort rader som inleds med-, t.ex.- // Update the alias based on alias; setting the language if not yet done.och lägg till rader som inleds med+, t.ex.+ // Ensure that no similar aliases exist..I ditt konkreta exempel skall du alltså radera raderna
och
och lägga till raderna
och
När det är så få rader som i detta fall är det enkelt att fixa med en vanlig editor. Annars så rekommenderar jag att du använder kommandot patch, som alltså också finns till Windows.
Lycka til!
Thomas Barregren – NodeOne
Handbokssida om GnuWin32
Jag såg at handboken saknade information om GnuWin32 så jag la till det här och här. Min personliga erfarenhet av GnuWin32 visaivi Unxutils och Cygwin är att den första är att föredra.
Thomas Barregren – NodeOne
Hej Thomas och tack för
Hej Thomas och tack för beskrivningen.
Jag kommer testa detta rätt av.
Jag har också installerat cygwin eftersom det ger en miljö mer lik Linus och därmed är det enklare för oss windowsanvändare att använda de kommandon och kodsnutter mer rätt av.
Jag ser också att du föredrar några andra vilka jag kommer testa om jag inte får till det med cygwin eller windows egna tillägg-.
Att uppdatera Drupal från 6.8 till 6.12 hjälper kanske inte detta, men det blir kvällens nöje
Trevlig helg alla!
Mvh
Håkan
Error
Lyckades inte så bra med att byta ut med hjälp av en editerare.
Mycket rutertecken och errormeddelanden.
Nedan följer felmeddelande från "status report"
Cannot modify header information - headers already sent by (output started at C:\Program Files\BitNami Drupal 6 Stack\apps\drupal\htdocs\modules\path\path.module:73) in C:\Program Files\BitNami Drupal 6 Stack\apps\drupal\htdocs\includes\common.inc on line 141.
Thomas, Jag lade in koden enligt nedan:
<?php
// $Id: path.module,v 1.138.2.3 2008/11/22 10:49:15 dries Exp $
// Check for existing aliases.
if ($alias == drupal_get_path_alias($path, $language)) {
// There is already such an alias, neutral or in this language.
db_query("UPDATE {url_alias} SET src = '%s' WHERE dst = '%s' AND language = '%s'", $path, $alias, $language);
// Ensure that no similar aliases exist. db_query("DELETE FROM {url_alias} WHERE dst = '%s' AND language = '%s'", $alias, $language);
+ db_query("UPDATE {url_alias} SET src = '%s' WHERE dst = '%s' AND language = '%s'", $path, $alias, $language);
Mycket
Rutertecken beror sannolikt på att din redigerare inte har rätt teckenuppsättning. Se till att använda ne redigerare som "förstår" UTF-8, t.ex. Notepad++.
Du har ett
+som inte skall vara med. Jag antar att du inte hade med<?php. :-) Koden i fråga skall se ut så här:Thomas Barregren – NodeOne
Patch koden inlagd enligt
Patch koden inlagd enligt ditt förslag Thomas och alla "ruter" är borta - så långt allt väl.
Dock får jag fortfarande upp det gamla felmeddelandet enligt nedan.
Kan det hjälpa att uppdatera från drupal 6.8 till 6.12 ?
Bör också titta på att uppdatera några av modulerna.
Felmeddelande:
user warning: Duplicate entry '/feed-en' for key 'dst_language' query: INSERT INTO url_alias (src, dst, language) VALUES ('node/50/feed', '/feed', 'en') in C:\Program Files\BitNami Drupal 6 Stack\apps\drupal\htdocs\modules\path\path.module on line 123.