A voir également:
- Site multilingue
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site x - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site pour vendre des objets d'occasion - Guide
6 réponses
Kingpopo a raison, c'est à mon avis la meilleure solution.
Pour mieux s'y retrouver, je te conseille de faire un répertoire par langue, et de garder la même structure et les mêmes noms de fichiers pour les 2 langues.
C'est beaucoup plus facile pour s'y retrouver.
Exemple:
http://www.monsite.com/fr/index.html
http://www.monsite.com/en/index.html
http://www.monsite.com/fr/perso/cv.html
http://www.monsite.com/en/perso/cv.html
Comme ça:
1) les internautes peuvent facilement passer d'une langue à l'autre.
2) toi tu peux retrouver rapidement les fichiers correspondants dans les différentes langues et les comparer, les mettre à jour...
Je bosse sur un gros site de commerce electronique qui fonctionne en 4 langues, et on a fait comme ça (/en/ /fr/ /sp/ /de/)
Pour mieux s'y retrouver, je te conseille de faire un répertoire par langue, et de garder la même structure et les mêmes noms de fichiers pour les 2 langues.
C'est beaucoup plus facile pour s'y retrouver.
Exemple:
http://www.monsite.com/fr/index.html
http://www.monsite.com/en/index.html
http://www.monsite.com/fr/perso/cv.html
http://www.monsite.com/en/perso/cv.html
Comme ça:
1) les internautes peuvent facilement passer d'une langue à l'autre.
2) toi tu peux retrouver rapidement les fichiers correspondants dans les différentes langues et les comparer, les mettre à jour...
Je bosse sur un gros site de commerce electronique qui fonctionne en 4 langues, et on a fait comme ça (/en/ /fr/ /sp/ /de/)
Salut Bernard,
Si tu as peu de pages et uniquement 2 langues tu peux en effet comme l'ont judicieusement conseillés les autres membres faire un répertoire par langue. Car c'est méthode est élégante, simple et rapide à mettre en oeuvre surtout dans ton cas puisque tu as déjà tes pages. Mais il faut songer à la vie du site ...
Maintenant si tu comptes gérés d'autres langues avec de nombreuses pages et que celles-ci changent souvent, alors là, la tâche risque rapidement de devenir complexe.
Dans ce cas de figure je te conseille de paramètrer l'ensemble du texte et de le stocker dans une base de données.
Avec PHP + MySql tu peux y arriver très facilement : ensuite il ne reste plus qu'à générer dynamiquement chaque page en fonction de la langue choisit. Il suffit simplement que tu passes le code de la langue en paramètre à chaque page et le tour est joué.
Autre avantage ca simplifie la traduction puisque tu fournies uniquement ta base de données contenant tous tes libellés au traducteur qui n'a pas à connaitre HTML , ce qui évite aussi qu'il modifie ton code par erreur : une apostrophe de trop ou un simple symbole '>' peu avoir des conséquences surprenantes...
Tu ne maintiens qu'une seule page à chaque fois et les modifications sont automatiquement répercutées dans ttes les langues.
Tu peux même changer de langue à la volée en demandant à PHP d'insèrer systèmatiquement tjrs au même endroit dans ttes tes pages par ex un drapeau de chaque pays ! Cool , non ? ;:-)
Le seul gros inconvenient est que tes pages HTML sont moins lisibles notemment avec la pluspart des éditeurs HTML... ;:-(
Par contre tu conserves la structure d'une répertoire par langue pour y stocker les images et autres animations pour le cas où un texte y apparaît. Faut bien que tu travailles un petit peu qd même !
;:-)
Où alors encore mieux tu utilises XML et là c'est le top ! Dans ce cas la séparation entre données et code est native donc plus de pb.
@+
Philippe
[[ The Truth is Out There ]]
Si tu as peu de pages et uniquement 2 langues tu peux en effet comme l'ont judicieusement conseillés les autres membres faire un répertoire par langue. Car c'est méthode est élégante, simple et rapide à mettre en oeuvre surtout dans ton cas puisque tu as déjà tes pages. Mais il faut songer à la vie du site ...
Maintenant si tu comptes gérés d'autres langues avec de nombreuses pages et que celles-ci changent souvent, alors là, la tâche risque rapidement de devenir complexe.
Dans ce cas de figure je te conseille de paramètrer l'ensemble du texte et de le stocker dans une base de données.
Avec PHP + MySql tu peux y arriver très facilement : ensuite il ne reste plus qu'à générer dynamiquement chaque page en fonction de la langue choisit. Il suffit simplement que tu passes le code de la langue en paramètre à chaque page et le tour est joué.
Autre avantage ca simplifie la traduction puisque tu fournies uniquement ta base de données contenant tous tes libellés au traducteur qui n'a pas à connaitre HTML , ce qui évite aussi qu'il modifie ton code par erreur : une apostrophe de trop ou un simple symbole '>' peu avoir des conséquences surprenantes...
Tu ne maintiens qu'une seule page à chaque fois et les modifications sont automatiquement répercutées dans ttes les langues.
Tu peux même changer de langue à la volée en demandant à PHP d'insèrer systèmatiquement tjrs au même endroit dans ttes tes pages par ex un drapeau de chaque pays ! Cool , non ? ;:-)
Le seul gros inconvenient est que tes pages HTML sont moins lisibles notemment avec la pluspart des éditeurs HTML... ;:-(
Par contre tu conserves la structure d'une répertoire par langue pour y stocker les images et autres animations pour le cas où un texte y apparaît. Faut bien que tu travailles un petit peu qd même !
;:-)
Où alors encore mieux tu utilises XML et là c'est le top ! Dans ce cas la séparation entre données et code est native donc plus de pb.
@+
Philippe
[[ The Truth is Out There ]]
Bonjour HackTrack,
Ta solution me parait élegante, moi j'utilise un dossier par langue et je veux passer en jsp/servlets pour gérer le multilingue avec une sorte de dictionnaire ou d'xml à charger en fct de la langue.
Veut tu bien m'envoyer ton code pour voir comment commencer.
Merci.
Ta solution me parait élegante, moi j'utilise un dossier par langue et je veux passer en jsp/servlets pour gérer le multilingue avec une sorte de dictionnaire ou d'xml à charger en fct de la langue.
Veut tu bien m'envoyer ton code pour voir comment commencer.
Merci.
Salut a tous, je suis en train de cree un site, mais les pages sont que en anglais ou en allemends.Et pour changer le language, je voudrait savoir un code PHP.
Si des gens sont interesser pour la langue allemand c'est ça:
Si des gens sont interesser pour la langue allemand c'est ça:
<?php /* $Id: german.php 1743 2007-12-20 18:02:36Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2007 osCommerce Released under the GNU General Public License */ // look in your $PATH_LOCALE/locale directory for available locales // or type locale -a on the server. // Examples: // on RedHat try 'de_DE' // on FreeBSD try 'de_DE.ISO_8859-1' // on Windows try 'de' or 'German' @setlocale(LC_TIME, 'de_DE.ISO_8859-1'); define('DATE_FORMAT_SHORT', '%d.%m.%Y'); // this is used for strftime() define('DATE_FORMAT_LONG', '%A, %d. %B %Y'); // this is used for strftime() define('DATE_FORMAT', 'd.m.Y'); // this is used for strftime() define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S'); //// // Return date in raw format // $date should be in format mm/dd/yyyy // raw date is in format YYYYMMDD, or DDMMYYYY function tep_date_raw($date, $reverse = false) { if ($reverse) { return substr($date, 0, 2) . substr($date, 3, 2) . substr($date, 6, 4); } else { return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2); } } // if USE_DEFAULT_LANGUAGE_CURRENCY is true, use the following currency, instead of the applications default currency (used when changing language) define('LANGUAGE_CURRENCY', 'FR'); // Global entries for the <html> tag define('HTML_PARAMS','dir="LTR" lang="FR"'); // charset for web pages and emails define('CHARSET', 'iso-8859-1'); // page title define('TITLE', STORE_NAME); // header text in includes/header.php define('HEADER_TITLE_CREATE_ACCOUNT', 'Neues Konto'); define('HEADER_TITLE_MY_ACCOUNT', 'Ihr Konto'); define('HEADER_TITLE_CART_CONTENTS', 'Warenkorb'); define('HEADER_TITLE_CHECKOUT', 'Kasse'); define('HEADER_TITLE_TOP', 'Startseite'); define('HEADER_TITLE_CATALOG', 'Katalog'); define('HEADER_TITLE_LOGOFF', 'Abmelden'); define('HEADER_TITLE_LOGIN', 'Anmelden'); // footer text in includes/footer.php define('FOOTER_TEXT_REQUESTS_SINCE', 'Zugriffe seit'); // text for gender define('MALE', 'Herr'); define('FEMALE', 'Frau'); define('MALE_ADDRESS', 'Herr'); define('FEMALE_ADDRESS', 'Frau'); // text for date of birth example define('DOB_FORMAT_STRING', 'tt.mm.jjjj'); // categories box text in includes/boxes/categories.php define('BOX_HEADING_CATEGORIES', 'Kategorien'); // manufacturers box text in includes/boxes/manufacturers.php define('BOX_HEADING_MANUFACTURERS', 'Hersteller'); // whats_new box text in includes/boxes/whats_new.php define('BOX_HEADING_WHATS_NEW', 'Neue Produkte'); // quick_find box text in includes/boxes/quick_find.php define('BOX_HEADING_SEARCH', 'Schnellsuche'); define('BOX_SEARCH_TEXT', 'Verwenden Sie Stichworte, um ein Produkt zu finden.'); define('BOX_SEARCH_ADVANCED_SEARCH', 'erweiterte Suche'); // specials box text in includes/boxes/specials.php define('BOX_HEADING_SPECIALS', 'Angebote'); // reviews box text in includes/boxes/reviews.php define('BOX_HEADING_REVIEWS', 'Bewertungen'); define('BOX_REVIEWS_WRITE_REVIEW', 'Bewerten Sie dieses Produkt!'); define('BOX_REVIEWS_NO_REVIEWS', 'Es liegen noch keine Bewertungen vor'); define('BOX_REVIEWS_TEXT_OF_5_STARS', '%s von 5 Sternen!'); // shopping_cart box text in includes/boxes/shopping_cart.php define('BOX_HEADING_SHOPPING_CART', 'Warenkorb'); define('BOX_SHOPPING_CART_EMPTY', '0 Produkte'); // order_history box text in includes/boxes/order_history.php define('BOX_HEADING_CUSTOMER_ORDERS', 'Bestellübersicht'); // best_sellers box text in includes/boxes/best_sellers.php define('BOX_HEADING_BESTSELLERS', 'Bestseller'); define('BOX_HEADING_BESTSELLERS_IN', 'Bestseller<br> '); // notifications box text in includes/boxes/products_notifications.php define('BOX_HEADING_NOTIFICATIONS', 'Benachrichtigungen'); define('BOX_NOTIFICATIONS_NOTIFY', 'Benachrichtigen Sie mich über Aktuelles zu diesem Artikel <b>%s</b>'); define('BOX_NOTIFICATIONS_NOTIFY_REMOVE', 'Benachrichtigen Sie mich nicht mehr zu diesem Artikel <b>%s</b>'); // manufacturer box text define('BOX_HEADING_MANUFACTURER_INFO', 'Hersteller Info'); define('BOX_MANUFACTURER_INFO_HOMEPAGE', '%s Homepage'); define('BOX_MANUFACTURER_INFO_OTHER_PRODUCTS', 'Mehr Produkte'); // languages box test in includes/boxes/languages.php define('BOX_HEADING_LANGUAGES', 'Sprachen'); // currencies box text in includes/boxes/currencies.php define('BOX_HEADING_CURRENCIES', 'Währungen'); // information box text in includes/boxes/information.php define('BOX_HEADING_INFORMATION', 'Informationen'); define('BOX_INFORMATION_PRIVACY', 'Privatsphäre<br> und Datenschutz'); define('BOX_INFORMATION_CONDITIONS', 'Unsere AGB\'s'); define('BOX_INFORMATION_SHIPPING', 'Liefer- und<br> Versandkosten'); define('BOX_INFORMATION_CONTACT', 'Kontakt'); // tell a friend box text in includes/boxes/tell_a_friend.php define('BOX_HEADING_TELL_A_FRIEND', 'Weiterempfehlen'); define('BOX_TELL_A_FRIEND_TEXT', 'Empfehlen Sie diesen Artikel einfach per eMail weiter.'); // checkout procedure text define('CHECKOUT_BAR_DELIVERY', 'Versandinformationen'); define('CHECKOUT_BAR_PAYMENT', 'Zahlungsweise'); define('CHECKOUT_BAR_CONFIRMATION', 'Bestätigung'); define('CHECKOUT_BAR_FINISHED', 'Fertig!'); // pull down default text define('PULL_DOWN_DEFAULT', 'Bitte wählen'); define('TYPE_BELOW', 'bitte unten eingeben'); // javascript messages define('JS_ERROR', 'Notwendige Angaben fehlen!\nBitte richtig ausf¨llen.\n\n'); define('JS_REVIEW_TEXT', '* Der Text muss mindestens aus ' . REVIEW_TEXT_MIN_LENGTH . ' Buchstaben bestehen.\n'); define('JS_REVIEW_RATING', '* Geben Sie Ihre Bewertung ein.\n'); define('JS_ERROR_NO_PAYMENT_MODULE_SELECTED', '* Bitte wählen Sie eine Zahlungsweise für Ihre Bestellung.\n'); define('JS_ERROR_SUBMITTED', 'Diese Seite wurde bereits bestätigt. Betätigen Sie bitte OK und warten bis der Prozess durchgeführt wurde.'); define('ERROR_NO_PAYMENT_MODULE_SELECTED', 'Bitte wählen Sie eine Zahlungsweise für Ihre Bestellung.'); define('CATEGORY_COMPANY', 'Firmendaten'); define('CATEGORY_PERSONAL', 'Ihre persönlichen Daten'); define('CATEGORY_ADDRESS', 'Ihre Adresse'); define('CATEGORY_CONTACT', 'Ihre Kontaktinformationen'); define('CATEGORY_OPTIONS', 'Optionen'); define('CATEGORY_PASSWORD', 'Ihr Passwort'); define('ENTRY_COMPANY', 'Firmenname:'); define('ENTRY_COMPANY_ERROR', ''); define('ENTRY_COMPANY_TEXT', ''); define('ENTRY_GENDER', 'Anrede:'); define('ENTRY_GENDER_ERROR', 'Bitte das Geschlecht angeben.'); define('ENTRY_GENDER_TEXT', '*'); define('ENTRY_FIRST_NAME', 'Vorname:'); define('ENTRY_FIRST_NAME_ERROR', 'Der Vorname sollte mindestens ' . ENTRY_FIRST_NAME_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_FIRST_NAME_TEXT', '*'); define('ENTRY_LAST_NAME', 'Nachname:'); define('ENTRY_LAST_NAME_ERROR', 'Der Nachname sollte mindestens ' . ENTRY_LAST_NAME_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_LAST_NAME_TEXT', '*'); define('ENTRY_DATE_OF_BIRTH', 'Geburtsdatum:'); define('ENTRY_DATE_OF_BIRTH_ERROR', 'Bitte geben Sie Ihr Geburtsdatum in folgendem Format ein: TT.MM.JJJJ (z.B. 21.05.1970)'); define('ENTRY_DATE_OF_BIRTH_TEXT', '* (z.B. 21.05.1970)'); define('ENTRY_EMAIL_ADDRESS', 'eMail-Adresse:'); define('ENTRY_EMAIL_ADDRESS_ERROR', 'Die eMail Adresse sollte mindestens ' . ENTRY_EMAIL_ADDRESS_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_EMAIL_ADDRESS_CHECK_ERROR', 'Die eMail Adresse scheint nicht gültig zu sein - bitte korrigieren.'); define('ENTRY_EMAIL_ADDRESS_ERROR_EXISTS', 'Die eMail Adresse ist bereits gespeichert - bitte melden Sie sich mit dieser Adresse an oder eröffnen Sie ein neues Konto mit einer anderen Adresse.'); define('ENTRY_EMAIL_ADDRESS_TEXT', '*'); define('ENTRY_STREET_ADDRESS', 'Strasse/Nr.:'); define('ENTRY_STREET_ADDRESS_ERROR', 'Die Strassenadresse sollte mindestens ' . ENTRY_STREET_ADDRESS_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_STREET_ADDRESS_TEXT', '*'); define('ENTRY_SUBURB', 'Stadtteil:'); define('ENTRY_SUBURB_ERROR', ''); define('ENTRY_SUBURB_TEXT', ''); define('ENTRY_POST_CODE', 'Postleitzahl:'); define('ENTRY_POST_CODE_ERROR', 'Die Postleitzahl sollte mindestens ' . ENTRY_POSTCODE_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_POST_CODE_TEXT', '*'); define('ENTRY_CITY', 'Ort:'); define('ENTRY_CITY_ERROR', 'Die Stadt sollte mindestens ' . ENTRY_CITY_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_CITY_TEXT', '*'); define('ENTRY_STATE', 'Bundesland:'); define('ENTRY_STATE_ERROR', 'Das Bundesland sollte mindestens ' . ENTRY_STATE_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_STATE_ERROR_SELECT', 'Bitte wählen Sie ein Bundesland aus der Liste.'); define('ENTRY_STATE_TEXT', '*'); define('ENTRY_COUNTRY', 'Land:'); define('ENTRY_COUNTRY_ERROR', 'Bitte wählen Sie ein Land aus der Liste.'); define('ENTRY_COUNTRY_TEXT', '*'); define('ENTRY_TELEPHONE_NUMBER', 'Telefonnummer:'); define('ENTRY_TELEPHONE_NUMBER_ERROR', 'Die Telefonnummer sollte mindestens ' . ENTRY_TELEPHONE_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_TELEPHONE_NUMBER_TEXT', '*'); define('ENTRY_FAX_NUMBER', 'Telefaxnummer:'); define('ENTRY_FAX_NUMBER_ERROR', ''); define('ENTRY_FAX_NUMBER_TEXT', ''); define('ENTRY_NEWSLETTER', 'Newsletter:'); define('ENTRY_NEWSLETTER_TEXT', ''); define('ENTRY_NEWSLETTER_YES', 'abonniert'); define('ENTRY_NEWSLETTER_NO', 'nicht abonniert'); define('ENTRY_NEWSLETTER_ERROR', ''); define('ENTRY_PASSWORD', 'Passwort:'); define('ENTRY_PASSWORD_ERROR', 'Das Passwort sollte mindestens ' . ENTRY_PASSWORD_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_PASSWORD_ERROR_NOT_MATCHING', 'Beide eingegebenen Passwörter müssen identisch sein.'); define('ENTRY_PASSWORD_TEXT', '*'); define('ENTRY_PASSWORD_CONFIRMATION', 'Bestätigung:'); define('ENTRY_PASSWORD_CONFIRMATION_TEXT', '*'); define('ENTRY_PASSWORD_CURRENT', 'Current Password:'); define('ENTRY_PASSWORD_CURRENT_TEXT', '*'); define('ENTRY_PASSWORD_CURRENT_ERROR', 'Das Passwort sollte mindestens ' . ENTRY_PASSWORD_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_PASSWORD_NEW', 'New Password:'); define('ENTRY_PASSWORD_NEW_TEXT', '*'); define('ENTRY_PASSWORD_NEW_ERROR', 'Das neue Passwort sollte mindestens ' . ENTRY_PASSWORD_MIN_LENGTH . ' Zeichen enthalten.'); define('ENTRY_PASSWORD_NEW_ERROR_NOT_MATCHING', 'Die Passwort-Bestätigung muss mit Ihrem neuen Passwort übereinstimmen.'); define('PASSWORD_HIDDEN', '--VERSTECKT--'); define('FORM_REQUIRED_INFORMATION', '* Notwendige Eingabe'); // constants for use in tep_prev_next_display function define('TEXT_RESULT_PAGE', 'Seiten:'); define('TEXT_DISPLAY_NUMBER_OF_PRODUCTS', 'angezeigte Produkte: <b>%d</b> bis <b>%d</b> (von <b>%d</b> insgesamt)'); define('TEXT_DISPLAY_NUMBER_OF_ORDERS', 'angezeigte Bestellungen: <b>%d</b> bis <b>%d</b> (von <b>%d</b> insgesamt)'); define('TEXT_DISPLAY_NUMBER_OF_REVIEWS', 'angezeigte Meinungen: <b>%d</b> bis <b>%d</b> (von <b>%d</b> insgesamt)'); define('TEXT_DISPLAY_NUMBER_OF_PRODUCTS_NEW', 'angezeigte neue Produkte: <b>%d</b> bis <b>%d</b> (von <b>%d</b> insgesamt)'); define('TEXT_DISPLAY_NUMBER_OF_SPECIALS', 'angezeigte Angebote <b>%d</b> bis <b>%d</b> (von <b>%d</b> insgesamt)'); define('PREVNEXT_TITLE_FIRST_PAGE', 'erste Seite'); define('PREVNEXT_TITLE_PREVIOUS_PAGE', 'vorherige Seite'); define('PREVNEXT_TITLE_NEXT_PAGE', 'nächste Seite'); define('PREVNEXT_TITLE_LAST_PAGE', 'letzte Seite'); define('PREVNEXT_TITLE_PAGE_NO', 'Seite %d'); define('PREVNEXT_TITLE_PREV_SET_OF_NO_PAGE', 'Vorhergehende %d Seiten'); define('PREVNEXT_TITLE_NEXT_SET_OF_NO_PAGE', 'Nächste %d Seiten'); define('PREVNEXT_BUTTON_FIRST', '<<ERSTE'); define('PREVNEXT_BUTTON_PREV', '[<< vorherige]'); define('PREVNEXT_BUTTON_NEXT', '[nächste >>]'); define('PREVNEXT_BUTTON_LAST', 'LETZTE>>'); define('IMAGE_BUTTON_ADD_ADDRESS', 'Neue Adresse'); define('IMAGE_BUTTON_ADDRESS_BOOK', 'Adressbuch'); define('IMAGE_BUTTON_BACK', 'Zurück'); define('IMAGE_BUTTON_BUY_NOW', 'Buy Now'); define('IMAGE_BUTTON_CHANGE_ADDRESS', 'Adresse ändern'); define('IMAGE_BUTTON_CHECKOUT', 'Kasse'); define('IMAGE_BUTTON_CONFIRM_ORDER', 'Bestellung bestätigen'); define('IMAGE_BUTTON_CONTINUE', 'Weiter'); define('IMAGE_BUTTON_CONTINUE_SHOPPING', 'Einkauf fortsetzen'); define('IMAGE_BUTTON_DELETE', 'Löschen'); define('IMAGE_BUTTON_EDIT_ACCOUNT', 'Daten ändern'); define('IMAGE_BUTTON_HISTORY', 'Bestellübersicht'); define('IMAGE_BUTTON_LOGIN', 'Anmelden'); define('IMAGE_BUTTON_IN_CART', 'In den Warenkorb'); define('IMAGE_BUTTON_NOTIFICATIONS', 'Benachrichtigungen'); define('IMAGE_BUTTON_QUICK_FIND', 'Schnellsuche'); define('IMAGE_BUTTON_REMOVE_NOTIFICATIONS', 'Benachrichtigungen löschen'); define('IMAGE_BUTTON_REVIEWS', 'Bewertungen'); define('IMAGE_BUTTON_SEARCH', 'Suchen'); define('IMAGE_BUTTON_SHIPPING_OPTIONS', 'Versandoptionen'); define('IMAGE_BUTTON_TELL_A_FRIEND', 'Weiterempfehlen'); define('IMAGE_BUTTON_UPDATE', 'Aktualisieren'); define('IMAGE_BUTTON_UPDATE_CART', 'Warenkorb aktualisieren'); define('IMAGE_BUTTON_WRITE_REVIEW', 'Bewertung schreiben'); define('SMALL_IMAGE_BUTTON_DELETE', 'Delete'); define('SMALL_IMAGE_BUTTON_EDIT', 'Edit'); define('SMALL_IMAGE_BUTTON_VIEW', 'View'); define('ICON_ARROW_RIGHT', 'Zeige mehr'); define('ICON_CART', 'In den Warenkorb'); define('ICON_ERROR', 'Fehler'); define('ICON_SUCCESS', 'Success'); define('ICON_WARNING', 'Warnung'); define('TEXT_GREETING_PERSONAL', 'Schön das Sie wieder da sind <span class="greetUser">%s!</span> Möchten Sie die <a href="%s"><u>neue Produkte</u></a> ansehen?'); define('TEXT_GREETING_PERSONAL_RELOGON', '<small>Wenn Sie nicht %s sind, melden Sie sich bitte <a href="%s"><u>hier</u></a> mit Ihrem Kundenkonto an.</small>'); define('TEXT_GREETING_GUEST', 'Herzlich Willkommen <span class="greetUser">Gast!</span> Möchten Sie sich <a href="%s"><u>anmelden</u></a>? Oder wollen Sie ein <a href="%s"><u>Kundenkonto</u></a> eröffnen?'); define('TEXT_SORT_PRODUCTS', 'Sortierung der Artikel ist '); define('TEXT_DESCENDINGLY', 'absteigend'); define('TEXT_ASCENDINGLY', 'aufsteigend'); define('TEXT_BY', ' nach '); define('TEXT_REVIEW_BY', 'von %s'); define('TEXT_REVIEW_WORD_COUNT', '%s Worte'); define('TEXT_REVIEW_RATING', 'Bewertung: %s [%s]'); define('TEXT_REVIEW_DATE_ADDED', 'Datum hinzugefügt: %s'); define('TEXT_NO_REVIEWS', 'Es liegen noch keine Bewertungen vor.'); define('TEXT_NO_NEW_PRODUCTS', 'Zur Zeit gibt es keine neuen Produkte.'); define('TEXT_UNKNOWN_TAX_RATE', 'Unbekannter Steuersatz'); define('TEXT_REQUIRED', '<span class="errorText">erforderlich</span>'); define('ERROR_TEP_MAIL', '<font face="Verdana, Arial" size="2" color="#ff0000"><b><small>Fehler:</small> Die eMail kann nicht über den angegebenen SMTP-Server verschickt werden. Bitte kontrollieren Sie die Einstellungen in der php.ini Datei und führen Sie notwendige Korrekturen durch!</b></font>'); define('WARNING_INSTALL_DIRECTORY_EXISTS', 'Warnung: Das Installationverzeichnis ist noch vorhanden auf: ' . dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']) . '/install. Bitte löschen Sie das Verzeichnis aus Gründen der Sicherheit!'); define('WARNING_CONFIG_FILE_WRITEABLE', 'Warnung: osC kann in die Konfigurationsdatei schreiben: ' . dirname($HTTP_SERVER_VARS['SCRIPT_FILENAME']) . '/includes/configure.php. Das stellt ein mögliches Sicherheitsrisiko dar - bitte korrigieren Sie die Benutzerberechtigungen zu dieser Datei!'); define('WARNING_SESSION_DIRECTORY_NON_EXISTENT', 'Warnung: Das Verzeichnis für die Sessions existiert nicht: ' . tep_session_save_path() . '. Die Sessions werden nicht funktionieren bis das Verzeichnis erstellt wurde!'); define('WARNING_SESSION_DIRECTORY_NOT_WRITEABLE', 'Warnung: osC kann nicht in das Sessions Verzeichnis schreiben: ' . tep_session_save_path() . '. Die Sessions werden nicht funktionieren bis die richtigen Benutzerberechtigungen gesetzt wurden!'); define('WARNING_SESSION_AUTO_START', 'Warnung: session.auto_start ist enabled - Bitte disablen Sie dieses PHP Feature in der php.ini und starten Sie den WEB-Server neu!'); define('WARNING_DOWNLOAD_DIRECTORY_NON_EXISTENT', 'Warnung: Das Verzeichnis für den Artikel Download existiert nicht: ' . DIR_FS_DOWNLOAD . '. Diese Funktion wird nicht funktionieren bis das Verzeichnis erstellt wurde!'); define('TEXT_CCVAL_ERROR_INVALID_DATE', 'Das "Gültig bis" Datum ist ungültig. Bitte korrigieren Sie Ihre Angaben.'); define('TEXT_CCVAL_ERROR_INVALID_NUMBER', 'Die "KreditkarteNummer", die Sie angegeben haben, ist ungültig. Bitte korrigieren Sie Ihre Angaben.'); define('TEXT_CCVAL_ERROR_UNKNOWN_CARD', 'Die ersten 4 Ziffern Ihrer Kreditkarte sind: %s. Wenn diese Angaben stimmen, wird dieser Kartentyp leider nicht akzeptiert. Bitte korrigieren Sie Ihre Angaben gegebenfalls.'); define('FOOTER_TEXT_BODY', 'Copyright © ' . date('Y') . ' <a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . STORE_NAME . '</a><br>Powered by <a href="http://www.oscommerce.com" target="_blank">osCommerce</a>'); ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ben le plus simple est de faire d'entrée de jeu une page qui propose une bidirection francais/anglais et de mettre le site français et son double anglais côte à côte. un dossier fr et un dossier ang la page index proposant l'un ou l'autre.
Kingpopo, votre meilleur pote à la une!!!
Kingpopo, votre meilleur pote à la une!!!
Salut Bernard!
J'ai personnellement réalisé une application client-serveur en Java qui permet de choisir sa langue à tout moment (icône de drapeaux représentant la langue). Tu peux même rajouter une ou plusieurs langues ultérieurement en ajoutant juste une image représentant le drapeau et en créant un dictionnaire (fichier texte) pour cette langue... et c'est tout!
J'ai utilisé des JSP et des Servlets ainsi qu'une classe Dictionnary que j'ai créée et qui a pour but de charger le dictionnaire à la demande de l'utilisateur.
Si tu connais Java et les JSP/Servelets, je veux bien t'envoyer le code eainsi qu'une doc t'expliquant le fonctionnement. Attention que des JSP/Servlets ne tourneront que sur un serveur acceptant Java (JBoss, Tomcat,...)
;-)
HackTrack
J'ai personnellement réalisé une application client-serveur en Java qui permet de choisir sa langue à tout moment (icône de drapeaux représentant la langue). Tu peux même rajouter une ou plusieurs langues ultérieurement en ajoutant juste une image représentant le drapeau et en créant un dictionnaire (fichier texte) pour cette langue... et c'est tout!
J'ai utilisé des JSP et des Servlets ainsi qu'une classe Dictionnary que j'ai créée et qui a pour but de charger le dictionnaire à la demande de l'utilisateur.
Si tu connais Java et les JSP/Servelets, je veux bien t'envoyer le code eainsi qu'une doc t'expliquant le fonctionnement. Attention que des JSP/Servlets ne tourneront que sur un serveur acceptant Java (JBoss, Tomcat,...)
;-)
HackTrack
Bonjour,
Je suis interesse par la methode decrite par sebsauvage. Neanmoins, je me demande si on doit dupliquer les dossiers des modules, des plugins... Si oui, comment faire par la suite pour modifier un module? Doit-on le modifier 2 fois pour qu'il soit modifier dans les 2 langues?
Merci pour votre reponse.
Je suis interesse par la methode decrite par sebsauvage. Neanmoins, je me demande si on doit dupliquer les dossiers des modules, des plugins... Si oui, comment faire par la suite pour modifier un module? Doit-on le modifier 2 fois pour qu'il soit modifier dans les 2 langues?
Merci pour votre reponse.
Hello,
Totalement novice mais sur un gros projet, je souhaite que mon site s'affiche automatiquement dans la langue désirée. C'est une base Socialengine et je vais m'efforcer de garder le maximum du site en template parce que c'est certainement plus facile à traduire. J'ai besoin de ces langues: FR/EN/ES/IT/DE/CHIN/INDOU/JAP.
On peut trouver un petit budget pour celui ou celle que ça intéresse. La base du site sera composée en Anglais. Mais traduisible par nos soins en Français. Il nous manque donc les autres langues, et l'installation. Soit par choix du user, soit par détection IP si faisable. Merci de me mailer vos propositions sur lambert.osx@gmail.com
Cheers
Totalement novice mais sur un gros projet, je souhaite que mon site s'affiche automatiquement dans la langue désirée. C'est une base Socialengine et je vais m'efforcer de garder le maximum du site en template parce que c'est certainement plus facile à traduire. J'ai besoin de ces langues: FR/EN/ES/IT/DE/CHIN/INDOU/JAP.
On peut trouver un petit budget pour celui ou celle que ça intéresse. La base du site sera composée en Anglais. Mais traduisible par nos soins en Français. Il nous manque donc les autres langues, et l'installation. Soit par choix du user, soit par détection IP si faisable. Merci de me mailer vos propositions sur lambert.osx@gmail.com
Cheers
Je suis d'accord pour cette solution qui me semble la plus pratique, cependant j'ai 2 questions concernant le référencement :
1/ N'y a-t-il pas de risque que Google considère https://www.netanswer.fr/ et https://www.netanswer.fr/ comme 2 sites identiques et que, par conséquent, me pénalise dans le référencement ?
2/ Je ne pense pas qu'une redirection sur l'index ( https://www.netanswer.fr/ => https://www.netanswer.fr/ ) soit la meilleure des solutions.
Qu'en est-il exactement ?
Merci