【WordPress】MTS Simple Booking-C をローカライズした時の備忘録

この記事は、備忘録です。技術的検証などは、殆ど行っていません。更にWordpressのコーダーとしてはド素人レベルです。

Polylangプラグイン導入

MTS Simple Booking-C をダウンロード(Ver.1.4.1)して導入するのと同時に、Polylangプラグインも導入する。

以降はPolylangプラグインで日本語と英語を設定済みの条件下での話。

予約カレンダー(月)

polylangプラグインを導入して、各々の言語のフロントページにショートコードを利用して月カレンダーを表示すると、何もしなくても多言語化される。

日毎の予約テーブル

月カレンダー同様、何もしなくても多言語される。

予約フォーム

スラッグ名をbooking-formにした固定画面を用意する必要があるが、日本語のみ対応のコードになっている為に改造した。

方針

言語スラッグurl
日本語booking-formドメイン名/booking-form/~
英語booking-form-enドメイン名/en/booking-form-en/~
  • 日毎の予約テーブルからのリンクは上記のurlする。
  • booking-form,booking-form-enどちらもmtssb-booking-form.phpをディスパッチする。
  • mtssb-booking-form.php は多言語化する。

手順 (mts-simple-booking.php)

(1) 50行目付近に一行追加

	// フロントページ
	const PAGE_BOOKING_FORM = 'booking-form';
	const PAGE_BOOKING_FORM_EN = 'booking-form-en'; /* 追加 */

(2) 関数 form_dispatcher()を変更

public function form_dispatcher($content) {

    if (is_page(self::PAGE_BOOKING_FORM) || is_page(self::PAGE_BOOKING_FORM_EN)) {
        $booking_form = $this->_load_module('MTSSB_Booking_Form');
        $content = $booking_form->booking_form($content);
    }

    return $content;
}

手順 (mtssb-front.php)

(1) 関数 _reservation_of_the_article()を変更

protected function _reservation_of_the_article($article_id, &$article, $thetime, $schedule) {
    global $mts_simple_booking;

    // 予約ページのURL
    $culUriArr = explode("/", $this->this_page); // Uriを分解
    $culUriArr = array_filter($culUriArr);
    if(in_array('en', $culUriArr)) {
        $form_name = MTS_Simple_Booking::PAGE_BOOKING_FORM_EN;
    }
    else {
        $form_name = MTS_Simple_Booking::PAGE_BOOKING_FORM;
    }

    $form_link = $mts_simple_booking->get_permalink_by_slug($form_name);
Bo
‘en’の検索がハードコーディングなのが。。。^^;

手順 (mtssb-booking-form.php)

多言語化する、ここでは一部例を記載。

(1) 488行目付近

変更前

<form method="post" action="<?php echo $url ?>">
	<fieldset id="booking-reservation-fieldset">
	<legend><?php echo apply_filters('booking_form_number_title', 'ご予約') ?></legend>

変更後

<form method="post" action="<?php echo $url ?>">
	<fieldset id="booking-reservation-fieldset">
	<legend><?php echo apply_filters('booking_form_number_title', __("Booking", $this->domain)) ?></legend>

手順(mts-simple-booking.php)

(1) 関数internal_dispatcher()を変更

public function internal_dispatcher() {

    $action = isset($_POST['action']) ? $_POST['action'] : '';

    if (is_page(self::PAGE_BOOKING_FORM) || is_page(self::PAGE_BOOKING_FORM_EN)) {
        if ($action == 'confirm') {














シェアしてくれると励みになります!

自作サービスやってます

【無料】宛名メーカー

せどり・メルカリ・ヤフオク・ラクマなどの商品発送の手書きでの宛名書きに疲れた。。。あなた!宛名メーカーは無料でレターパック、スマートレター、定形外郵便などの宛名を簡単に作成できます。是非ご利用下さい!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)