Zum Inhalt wechseln



Neueste Nachrichten (in Englisch): (am laden..)

Foto

paypal auf deutsch und englisch


Dieses Thema wurde archiviert. Dies bedeutet, dass Sie auf dieses Thema nicht antworten können.
10 Antworten in diesem Thema

#1 mbr

mbr
  • Members
  • 4 Beiträge

Geschrieben 06 November 2004 - 12:42

Nachdem mich froogle gestern darauf aufmerksam gemacht hat, dass die paypal-Seiten immer in der selben Sprache aufgerufen werden, wenn es ans Bezahlen geht, hab' ich mich mal durch die Paypal-Dokumentation und auch durch die Modulquellen gequält. Bisher enthält das Paypal-Modul keine Sprachabhängigkeit, Paypal unterstützt diese aber mittlerweile mit dem Parameter lc (Defines the buyer's checkout flow language. Available
languages are US English, UK English, German, and Japanese.)

Mit der heißen Nadel lässt sich includes/modules/payment/paypal.php aber ganz flott hinbiegen, und zwar in der folgenden Funktion:

function process_button() {
global $order, $currencies, $currency, $language;

if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {
$my_currency = $currency;
} else {
$my_currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);
}
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {
$my_currency = 'USD';
}

if ($language == 'german') {
$my_lang = 'de';
} else {
$my_lang = 'en';
}


$process_button_string = tep_draw_hidden_field('cmd', '_xclick') .
tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .
tep_draw_hidden_field('item_name', STORE_NAME) .
tep_draw_hidden_field('amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('currency_code', $my_currency) .
tep_draw_hidden_field('lc', $my_lang) .
tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

return $process_button_string;
}

Es scheint sogar zu funktionieren. Da ich mich mit osC im Detail nicht auskenne, gibt es aber bestimmt noch eine hübschere Lösung. Japanisch ist so jedoch noch nicht unterstützt.... ;-)

#2 Weinlig

Weinlig
  • Members
  • 29 Beiträge

Geschrieben 06 November 2004 - 19:41

... zumindest bei mir.

Hi Michael, nach so einer Lösung suche ich seit längerem - selbst unser PayPal-Accountmanager konnte uns nicht helfen. Auslandskunden konnten bis zur grossen PayPal-Umstellung in englischer Sprache bezahlen (offenbar abhängig von der Browser-Sprache?), jetzt wird nur noch D angezeigt.

Leider funktioniert Dein Code bei mir nicht, selbst wenn ich $my_lang direkt auf 'en' setze.

Ist da ein Fehler?

Viele Grüße, E.

#3 mbr

mbr
  • Members
  • 4 Beiträge

Geschrieben 06 November 2004 - 21:31

Also, einen kleinen Fehler gibt es zumindest: Bei PayPal heißt es nicht en,
sondern us oder uk. Das ist aber egal, weil alle LC-Angaben, die nicht
bekannt sind, ins US-Englisch führen.

Übrigens scheint jetzt auch das Französische unterstützt zu werden, Spanisch jedoch noch nicht.

Welche Version vom PayPal-Modul benutzt Du denn? Bei mir funktionieren die Erweiterungen sowohl mit 1.35 (2002/11/25) als auch
mit 1.39 (2003/01/29) - die ist wohl im 2.2MS2 drin.

Vielleicht solltest Du am besten überprüfen, ob bei Dir die Adresse vernünftig generiert wird, die für den PayPal-Aufruf verwendet wird. Steht
dort das &lc=en drin? Es sollte direkt vor &business= und nach der Währung zu finden sein.

Hier kommt noch mal der letzte Stand der abgeänderten Funktion - nun auch auf französisch, aber farblos:

function process_button() {
global $order, $currencies, $currency, $language;

if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {
$my_currency = $currency;
} else {
$my_currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);
}
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {
$my_currency = 'USD';
}

if ($language == 'german') {
$my_lang = 'de';
} elseif ($language == 'french') {
$my_lang = 'fr';
} else {
$my_lang = 'us';
}

$process_button_string = tep_draw_hidden_field('cmd', '_xclick') .
tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .
tep_draw_hidden_field('item_name', STORE_NAME) .
tep_draw_hidden_field('amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('currency_code', $my_currency) .
tep_draw_hidden_field('lc', $my_lang) .
tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));

return $process_button_string;
}

Na, vielleicht hilft Dir das ja etwas weiter ...

Viele Gruesse

#4 Tsimi

Tsimi
  • Members
  • 1020 Beiträge

Geschrieben 17 November 2004 - 16:22

Hallo Weinlig

Hast du ALLE 3 Änderungen gemacht?
Bei mir funzte es schon beim ersten Versuch.

Besten Dank an "mbr" für den Code. Spitze! :D

Gruss Tsimi

Gruss Tsimi


#5 Weinlig

Weinlig
  • Members
  • 29 Beiträge

Geschrieben 23 November 2004 - 15:45

Hallo,

ich bin erst eben dazu gekommen, das nochmals zu checken. Bei mir funktioniert jetzt auch alles wunderbar. Ich hatte einen dummen Anfängerfehler drin (oberhalb der letzten geschweiften Klammer gepastet) ;-(((


Viele Grüße, E.

#6 manica

manica
  • Members
  • 249 Beiträge

Geschrieben 01 December 2004 - 08:16

der genannte Code ist bei mir garnicht vorhanden. Dummerweise läßt Paypal nur Tests mit echten Accounts zu. Warum bietet Paypal nicht selber ein Modul für OSC an. Immerhin einer der verbreitesten Shop. Die verdienen ja schließlich Geld damit. Einige Anbieter haben extra Module für OSC online gestellt.
Links dürfen nicht sein, daher bitte Profil wählen :-)

#7 cvkaiser

cvkaiser
  • Members
  • 22 Beiträge

Geschrieben 14 March 2006 - 08:17

ist zwar schon eine Weile her... aber trotzdem die Frage... funktioniert das auch mit dem Paypal_IPN modul? Wäre toll wenn mir da jemand aushelfen könnte. Bis dann - Christoph

#8 der.brain

der.brain
  • Members
  • 152 Beiträge

Geschrieben 28 April 2006 - 19:32

Hallo,

ich habe das so eingebaut MS2.2 aber leider scheint immer
nur das letzte else genommen zu werden.

Das heißt ich bekomme das Paypalmodul in Englisch wie Deutsch zu sehen
aber nur wenn ich das letzte else von $my_lang = 'us'; in $my_lang = 'de';
ändere.

Es scheint so als wenn bei mir die variable language gar nicht abgefragt wird.

if ($language == 'german') {
$my_lang = 'de';
} elseif ($language == 'french') {
$my_lang = 'fr';
} else {
$my_lang = 'us';
}


Hat einer eine Idee wo ich suchen kann ?


Gruß

Micha
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."

#9 der.brain

der.brain
  • Members
  • 152 Beiträge

Geschrieben 01 May 2006 - 01:37

Fürs Protokol

Das Teil funktioniert super, der Fehler lag bei mir in einem ganz anderen Modul so das Language falsch gesetzt war,

Gruß

Micha
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."

#10 hookup

hookup
  • Members
  • 712 Beiträge

Geschrieben 01 May 2006 - 08:19

danke den Trick! Funktioniert Super! Geht übrigens auch mit italienisch!

Unsere Italienischen und französcischen Kunden waren ohnehin mit Deutsch und Englisher Sprache überfordert!
osCommerce Ms2.2 | Linux 2.6.15-20060112174634-smp | Apache/2.0.53 (Linux/SUSE) | MySQL 4.1.10a-Max
MySql 4.1
CAO-Faktura 1.4.1.17K
Win XP
----------------------------------
Kommentiertes Stylesheet: -klick-

#11 MAD King

MAD King
  • Members
  • 170 Beiträge

Geschrieben 04 May 2006 - 07:06

Spitze. Tausend Dank es funktioniert wunderbar.