i18next.use(i18nextXHRBackend).init({
lng: ‘ja’,
fallbackLng: ‘ja’,

 

該当言語で見つからなかったら、デフォルト言語表示できる。

jsonの中身が、null か、””で。

potファイル生成

xgettext hello.php –from-code UTF-8 –add-comments=TRANSLATORS –output=default.pot

 

poファイル生成

msginit –locale=ja –input=default.pot

 

poファイル生成

msgmerge –no-fuzzy-matching ja.po default.pot -o ja.new.po

msgmerge –no-fuzzy-matching ja.po default.pot -o ja.new.po –sort-by-file

と同じ。

msgmerge –no-fuzzy-matching ja.po default.pot -o ja.new.po –sort-output

は不要。poeditでもソート可。未翻訳テキストソートも。

382 sudo yum install php-fpm
384 sudo vi /etc/php-fpm.d/www.conf
391 sudo vi /etc/nginx/nginx.conf
393 sudo /etc/init.d/php-fpm start
395 sudo chkconfig php-fpm on
396 sudo /etc/init.d/nginx restart

http://qiita.com/utano320/items/36b6eac2bbd5bb5657f6

SSL以外はソース ※動作未確認

381 wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.5.2.tar.gz
382 tar xvzf apr-1.5.2.tar.gz
383 cd apr-1.5.2
384 ./configure –prefix /usr/local/apr-1.5.2
385 make
386 make install
387 cd ..
388 wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.4.tar.gz
389 tar zxvf apr-util-1.5.4.tar.gz
390 cd apr-util-1.5.4
391 ./configure –prefix=/usr/local/apr-util-1.5.4 –with-apr=/usr/local/apr-1.5.2
392 make
393 make install
394 cd ..
395 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
396 tar xvzf pcre-8.39.tar.gz
397 cd pcre-8.39
398 ./configure –prefix=/usr/local/pcre-8.39
399 make
400 make install
401 cd ..
402 wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//httpd/httpd-2.4.23.tar.gz
403 tar xvzf httpd-2.4.23.tar.gz
404 cd httpd-2.4.23
405 yum install openssl
406 openssl
407 ./configure –enable-ssl –enable-mods-shared=all –with-apr=/usr/local/apr-1.5.2 –with-apr-util=/usr/local/apr-util-1.5.4 –with-pcre=/usr/local/pcre-8.39 –enable-shared=ssl
408 make
409 make isntall
410 make install
411 service httpd start
412 less httpd
413 ll
414 /usr/local/apache2/bin/httpd -v
415 usr/local/apache2/bin/apachectl start

参考

http://www.hp-stylelink.com/news/2013/08/20130830.php

ソース

<!DOCTYPE html>
<html>
<head>
<meta charset=”utf-8″ />
<title>Geolocation Sample</title>
</head>
<body>
<script type=”text/javascript”>
if (navigator.geolocation) {
// 現在の位置情報取得を実施
navigator.geolocation.getCurrentPosition(
// 位置情報取得成功時
function (pos) {
var location =”<li>”+”緯度:” + pos.coords.latitude + “</li>”;
location += “<li>”+”経度:” + pos.coords.longitude + “</li>”;
document.getElementById(“location”).innerHTML = location;
},
// 位置情報取得失敗時
function (pos) {
var location =”<li>位置情報が取得できませんでした。</li>”;
location +=”<li>pos=” + pos + “</li>”;
console.log(pos);
document.getElementById(“location”).innerHTML = location;
});
} else {
window.alert(“本ブラウザではGeolocationが使えません”);
}
</script>
<ul id=”location”>
</ul>
</body>
</html>

 

デモ

https://dev.furoom.net/sandbox/geolocation/

 

ブラウザごとで挙動違うみたい。

Chrome

HTTPS:○

HTTP:×

次のようなエラー。

PositionError {code: 1, message: “Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).”}

 

Edge

HTTPS:○

HTTP:○

※Windowsの設定で、位置情報の取得を許可するアプリとして設定が必要

 

Firefox

HTTPS:○

HTTP:○

 

Android Chrome

HTTPS:○

HTTP:×

次のようなエラー。

PositionError {code: 1, message: “Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).”}

かつ、GPSを有効にしている必要がある。

していなければ、許可するかどうかのダイアログも表示されない。

 

Android Dolphin

HTTPS:○

HTTP:×

次のようなエラー。

PositionError {code: 1, message: “Only secure origins are allowed (see: https://goo.gl/Y0ZkNV).”}

かつ、GPSを有効にしている必要がある。

していなければ、許可するかどうかのダイアログも表示されない。

yum install gettext は不要だった

<?php

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);

$language = ‘en’;
if (ereg(‘ja’, $_SERVER[‘HTTP_ACCEPT_LANGUAGE’])) {
$language = ‘ja_JP.UTF-8’;
}
// Set locale and default domain.
putenv(“LANG=$language”);
setlocale(LC_ALL, $language);
$domain = ‘messages’;
bindtextdomain($domain, “/var/www/html/sandbox/lang/locale”);
textdomain($domain);

// Output
echo gettext(“Hello”);

echo gettext(“World”);

 

1019 xgettext -n hello.php
1024 less messages.po
1026 mkdir locale
1027 mkdir locale/en
1028 mkdir locale/ja_JP
1029 mkdir locale/en/LC_MESSAGES
1030 mkdir locale/ja_JP/LC_MESSAGES
1031 cp messages.po locale/en/LC_MESSAGES/.
1032 mv messages.po locale/ja_JP/LC_MESSAGES/.
1033 cd locale/en/LC_MESSAGES/.
1034 msgfmt messages.po
1036 cd ../
1037 cd ../ja_JP/LC_MESSAGES/
1038 msgfmt messages.po

さくらから、「RPCリフレクションによるDDoS攻撃」の踏み台に利用という連絡がきた。

rpcbindは、nfsの検証で起動したサービスだった。

さくらのページを参考にiptablesを設定した。

https://help.sakura.ad.jp/app/answers/detail/a_id/2423/~/iptables%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95

 

外部サーバからアクセス拒否確認。

 

read は考慮必要。

read を while にすると、最後の待ちでブロックしてしまう。

fstatで、ノンブロッキングにすると、最初のreadでデータ受け取れないロジックになる(多分)ので、

実際のデータを見て、Content-lengthをもとに全部データ取得で来たら抜ける

というようにした方がよさそう。バッファも1024固定で取ってるけど、

その場合、malloc, callocで動的に。

★アプリレビュー
手順がよくわからなかったのでメモ。

・アプリレビュー
https://developers.facebook.com/apps/1718184088469400/review-status/

・スクリーンショットが必要。
・テストユーザを指定してください。
 という事で、本番アプリのテストユーザを指定
・ただ、本番アプリのテストユーザは、まだpages_messaging自体がないので、本番ページとやり取りできない。
・なので、テストユーザで作成したページを使ってもらう想定。でよいのか?
・アプリレビューでは、本物ページしか選べない。から担当者に伝えるすべがないが。。

レビュー用に本番アプリでテストユーザで作成したページを対応させる手順は以下。
https://developers.facebook.com/bugs/230322797329131/?hc_location=ufi

1) Create test user by toggling the Authorize test users for this app and grant permissions “manage_pages” and “page_messaging”.
2) Use the Edit Button and get an access token for this user (using v2.6). Please save this for later.
3) Use edit button to login as the test user
4) After login, create page as the test user
5) Use the user access token for the test user to get the page access token for this user. You can do this with the following call:
https://graph.facebook.com/v2.6/me/accounts?access_token=

6) Use this page access token to link your Facebook Application with your Page.
https://graph.facebook.com/v2.6/me/subscribed_apps?method=POST&access_token=

7) After you have followed these steps you will receive RTU updates to your Test Page and be able to message your Test User from your Test Page.

最後のこれも必要だった。ページアクセストークンの有効期限が短いので、多分レビュー前に切れてしまう。
GET /oauth/access_token?
grant_type=fb_exchange_token&
client_id={app-id}&
client_secret={app-secret}&
fb_exchange_token={short-lived-token}

・本番アプリ上のページアクセストークンを、上記テストユーザのページのページアクセストークンに変えた。
・で、申請。

で、良いのか。。

★開発環境
https://developers.facebook.com/apps/1718184088469400/dashboard/
メニューから「テストアプリ」が作成できる。

製品を追加で、「Messenger」を追加。
後の設定は同じ。

使い方としては、

本番アプリ – 本番ページ – 自分、他(レビュー後、無制限)
      – テストユーザページ – テストユーザ
テストアプリ – 開発ページ – 自分 ※アプリレビュー無いから、他は、個別に招待した人
– テストユーザページ – テストユーザ

という感じかな。
開発ページに対する、開発アプリの作成は不要。