如何使联系表格成为多国语言

时间:2019-05-15 13:59:34

标签: php

因此,我必须使用多种语言进行联系,但是我已经停留了7个小时。 所以我必须在不重复代码的情况下制作Ajax ok /错误消息。

 $language = $_GET["language"] OR $language == "en";
    $language = $_GET["language"] OR $language == "es";
    $language = $_GET["language"] OR $language == "pl";

    if ($language == "en") {
  $okMessage = 'Thank you, we will get back to you soon!';
  $errorMessage = 'There was an error while submitting the form. Please try again later';
}
if ($language == "pl") {
  $okMessage = 'Dziękujemy, skontaktujemy się niedługo';
  $errorMessage = 'W wiadomości pojawił się błąd, prosimy spróbować później';
}
if ($language == "es") {
  $okMessage = 'Gracias, nos pondremos en contacto con usted pronto!';
  $errorMessage = 'Hubo un error al enviar la solicitud. Por favor intente de nuevo.';
}

所以我要我的代码执行的操作是在波兰联系表单页面上输入即时消息。像www.website.com/pl-contact-page.php?language=pl-它在波兰给我错误/成功消息

1 个答案:

答案 0 :(得分:0)

在阅读了该主题之后,我决定提供一点帮助,我对您的code进行了一些更改,以使其更加容易和安全...您需要的是Query String和{{3} } ...其余的很简单...我在localtest上进行了测试,效果很好...

<?php
  @ini_set('default_charset', 'UTF-8');
  $gurl = $_SERVER['QUERY_STRING'];
  $ourl = array();
  parse_str($gurl, $ourl);
  if (isset($ourl['language']) || (!empty($ourl['language']))) {
    $language = htmlspecialchars($ourl['language'], ENT_NOQUOTES, 'UTF-8');
    if ($language == "en") {
      $okMessage = 'Thank you, we will get back to you soon!';
      $errorMessage = 'There was an error while submitting the form. Please try again later';
    } elseif ($language == "pl") {
      $okMessage = 'Dziekujemy, skontaktujemy sie niedlugo';
      $errorMessage = 'W wiadomosci pojawil sie blad, prosimy spróbowac pózniej';
    } elseif ($language == "es") {
      $okMessage = 'Gracias, nos pondremos en contacto con usted pronto!';
      $errorMessage = 'Hubo un error al enviar la solicitud. Por favor intente de nuevo';
    }
    // echo $okMessage; #Debug purpose
    // echo $errorMessage; #Debug purpose
  } else {
    echo ("No language available!");
  }
?>

版本为function get_messages()的{​​{1}}正确的字符串代码(detectUTF-8):

ANSI

<?php @ini_set('default_charset', 'UTF-8'); $gurl = $_SERVER['QUERY_STRING']; $ourl = array(); parse_str($gurl, $ourl); if (isset($ourl['language']) || (!empty($ourl['language']))) { $language = htmlspecialchars($ourl['language'], ENT_NOQUOTES, 'UTF-8'); function get_messages($string) { return mb_convert_encoding($string, 'UTF-8', mb_detect_encoding($string, 'UTF-8, ISO-8859-1', true)); } if ($language == "en") { $okMessage = get_messages('Thank you, we will get back to you soon!'); $errorMessage = get_messages('There was an error while submitting the form. Please try again later'); } elseif ($language == "pl") { $okMessage = get_messages('Dziekujemy, skontaktujemy sie niedlugo'); $errorMessage = get_messages('W wiadomosci pojawil sie blad, prosimy spróbowac pózniej'); } elseif ($language == "es") { $okMessage = get_messages('Gracias, nos pondremos en contacto con usted pronto!'); $errorMessage = get_messages('Hubo un error al enviar la solicitud. Por favor intente de nuevo'); } // echo $okMessage; #Debug purpose // echo $errorMessage; #Debug purpose } else { echo ("No language available!"); } ?>

http://localhost-test/contact-page.php?language=pl

http://localhost-test/contact-page.php?language=en

http://localhost-test/contact-page.php?language=es

注意:您必须http://localhost-test/contact-page.php放在echo的某个地方,否则messages似乎无法正常工作...

我希望这会有所帮助。