初ビルドまで – Android TVアプリ開発入門1

本記事は元記事の日本語訳です。

Android TV アプリ開発入門

Nexus Player, SONY BRAVIAと、Android TV(アンドロイドテレビ)が発売されてからすでに時間がたっているがまだまだAndroid TVアプリの開発に関する情報は少ない。そこでここでは、Android TVアプリを実際に自分で実装しながら学べる形式の開発チュートリアルを書いていければと思う。

本稿ではAndroid “TV”プラットフォームに特化した実装を主に紹介していく。特にUIの実装がメイン、なぜならUI はスマホとテレビではその基本思想が大きく異なるからだ。たとえばテレビはリモコンで気軽に操作するようにできているので、 ↑↓→← といった上下左右の方向キーだけで(タッチを使わずに)”気軽に”操作できるようなUIが要求される。

こういったユーザーが”気軽に”操作できるようにするための基礎プラットフォームとしてAndroid open source project(AOSP)からLeanback Support library (android.support.v17.leanback) が提供されている。ちなみにここでいうLeanback(リーンバック)とは、”後ろにもたれる”というような意味。ソファーにもたれながらでも、TVを簡単に操作できるようなUIが理想ですよーという事だろう。

このLeanback Support libraryを使ってアプリを開発することで、このようなUI思想に基づいたアプリが作れるというわけだ。ということで、本稿では主にこのLeanback libraryの使い方を紹介していく。

想定する読者層

  • Androidアプリは開発したことがあるが、Android TVアプリに関しては何も知らない
  • 初心者~中級者向け

使用するエディタ

Eclipseは2015年にサポートが終わっているので、 Android studio を使って開発を進めていく。Androidアプリ開発では今後標準となるIDEでとてもつかいやすいので、まだ使ったことのない方は、ここからAndroid Studioをダウンロードして設定しましょう!ちなみに、自分は英語版のAndroid Studioをそのまま使っているので日本語版の方は適宜読み替えて読み進めていただければと思います。

注:なお、本稿で説明するソースはAOSPで公開されている android TV サンプルソースコードが元ネタで、ただこのソースコードをもとに、より細かく説明しているだけです。

新しいAndroid TV アプリプロジェクトの作成

  1. Android studio

    起動

New project

 Application name: AndroidTVappTutorial

 Company Domain: corochann.com ( or you can use your own domain name )

androidtvapptutorial1

Target Android Devices

androidtvapptutorial2

Add an activity to TV

androidtvapptutorial3

“Add No Activity” 選択後、Finish

するとAndroid studio が自動でAndroidアプリ開発を進めるにあたって必要な最低限のソースコードを自動生成してくれる。

ここまでの手順が終わった状態のソースコードは githubで。

  1. Add activity

はじめにActivityを作成する。 “com.corochann.androidtvapptutorial”を右クリックして

New -> Activity -> Blank activity

“Launcher Activity”をチェック。

そして”MainActivity“という名前で、blank activityを作成する。 

すると、Android studioはJava class と layout/activity_main.xmlを自動生成してくれる(res/menu/menu_main.xmlも作成されるが、Android TVアプリでは使わないので無視)

* 注: Android Studio で、”Android TV activity” という項目も見つけることができる。これを選択すると一気に大量のファイルが自動生成される。Leanbackライブラリの各種機能がサンプル実装された状態でのファイルが生成されるので、参考ファイルとしては役立つんだけれど、一度に大量のファイルが生成されるので、どのファイルがどの機能とつながっているのかいまいちわかりづらい。
ということで、本稿ではこれらの機能を一つずつ実装していくことによって、理解を進めていきたい。

次に MainActivity の 実際のUI 表示部分を担当する MainFragmentを作る。

  1. Add fragment

パッケージネームを右クリック (例 com.corochann.androidtvapptutorial)

New -> Java Class -> Name: MainFragment

*  上の手順の代わりに、New -> Fragment -> Blank fragment Uncheck “Create layout XML?” を選択すると、これまた一気に不要なコードまで自動生成されてしまうので、今回は空のJava ClassからFragmentを作成していく。

まず、 activity_main.xml を以下のように変更して、MainActivityMainFragmentのみを表示するようにする。

* 以後、ソースのコピペをしたいときは、右上の “<>” アイコンをクリックするとできます。

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_browse_fragment"
    android:name="com.corochann.androidtvapptutorial.MainFragment" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context=".MainActivity" tools:deviceIds="tv"
    tools:ignore="MergeRootFrame" />

次に MainFragment の修正

この MainFragment を BrowseFragment のサブクラスとする。BrowseFragment class はAndroid SDK Leanback libraryで提供されているクラスで、Android TV の基本・標準となるUIを構築するために使われる(すぐ後、次の章で実例が表示されます)。

package com.corochann.helloandroidtvfromscrach;
 
import android.os.Bundle;
import android.support.v17.leanback.app.BrowseFragment;
import android.util.Log;
 
public class MainFragment extends BrowseFragment {
    private static final String TAG = MainFragment.class.getSimpleName();
 
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        Log.i(TAG, "onActivityCreated");
        super.onActivityCreated(savedInstanceState);
 
    }
}

(I) ビルド・実行

androidtvapptutorial5

BrowseFragment の構成要素である HeadersFragment と RowsFragment が確認できる。
HeaderFragment (ヘッダー) が右側、 RowsFragment (コンテンツ部分) が左側。このフラグメントの基本設定を行っていく。

まずは初めにBrowseFragmentのメインカラーとタイトルを設定しよう。

ここまでのソースコード: github

  1. setupUIElements() をMainFragment.javaに実装

MainFragment.javaにsetupUIElements()を実装する、このメソッドはアプリの基本UI情報を設定する。

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        Log.i(TAG, "onActivityCreated");
        super.onActivityCreated(savedInstanceState);

        setupUIElements();
        
    }

    private void setupUIElements() {
        // setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.videos_by_google_banner));
        setTitle("Hello Android TV!"); // Badge, when set, takes precedent
        // over title
        setHeadersState(HEADERS_ENABLED);
        setHeadersTransitionOnBackEnabled(true);

        // set fastLane (or headers) background color
        setBrandColor(getResources().getColor(R.color.fastlane_background));
        // set search icon color
        setSearchAffordanceColor(getResources().getColor(R.color.search_opaque));
    }

ここで設定しているのは

  • アプリタイトル もしくは アプリアイコン
  • ブランドカラー

色情報は colors.xml から参照される。このファイルを作成しよう。res/values を右クリックして、

New -> values Resource file
File name: colors.xml -> “OK”
と選択。できたファイルに以下のように記載する。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="fastlane_background">#0096e6</color>
    <color name="search_opaque">#ffaa3f</color>
</resources>
colors
colors are shown in left side of text editor in Android studio

(II) ビルド・実行

右上にタイトルが表示され、ヘッダー部分の色がブランドカラーで指定した色になっていればOK。

androidtvapptutorial6

ちなみに、 setTitle() のかわりに setBadgeDrawable() を使うこともできる。こちらのメソッドを用いた時にはタイトルテキストの代わりにアイコンが表示される。また、両方のメソッドを読んだ場合にはアイコン表示が優先される。

AndroidTVsampleApp
setBadgeDrawable() メソッドを用いるとタイトルの代わりにロゴイメージを表示できる。

ここまでのソースコード: github.

  1. Android Manifest の修正

ここまでのソースコードでは、アプリのアイコンが Leanback Launcher (Android TV のホーム画面・ホームランチャーアプリ) に表示されていなかったと思う。
アプリのランチャー(起動用)アイコンをAndroid TVで表示するためには、 AndroidManifest.xml を以下のようにする。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.corochann.androidtvapptutorial" >


    <!-- TV app need to declare touchscreen not required -->
    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />

    <!--
     true:  your app runs on only TV
     false: your app runs on phone and TV -->
    <uses-feature
        android:name="android.software.leanback"
        android:required="true" />


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Leanback" >
        <activity
            android:name=".MainActivity"
            android:icon="@drawable/app_icon_your_company"
            android:label="@string/app_name"
            android:logo="@drawable/app_icon_your_company" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

また、 app_icon_your_compan.png は main/res/drawble/ フォルダの中に入れた。

(III) ビルド・実行

Leanback launcherにてアプリのランチャーアイコンを表示するには以下の宣言を行う必要がある。

 <category android:name="android.intent.category.LEANBACK_LAUNCHER" />

またアイコン・ロゴはActivityタグ内で指定されている。

        <activity
            android:name=".MainActivity"
            android:icon="@drawable/app_icon_your_company"
            android:label="@string/app_name"
            android:logo="@drawable/app_icon_your_company" >

            ...
manifest_activity
Activity のランチャーアイコンがLeanback Launcherに表示される

To show application icon in Leanback launcher

アプリのアイコンを表示するには、アプリタグ内に以下を記載。

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Leanback" >

        ...

アプリアイコンはActivityのランチャーアイコンとは異なるので注意。アプリアイコンはAndroid TVの設定→アプリ画面で確認できる。

manifest_application
application icon will appear in your Downloaded apps list.

Android TV向けのAndroidManifestの設定に関しては Android developers pageも参照。

次章BrowseFragmentの構成 – Android TVアプリ開発入門2 では BrowseFragmentHeadersFragmentRowsFragment をより深く説明する。Adapter と Presenter を用いて実際にBrowseFragment内にアイテムの表示をしていく。

References

Android TV ゲームアプリ10選 <ゲームパッド不必要編>

Android TV と普通のTVの大きな違いはアプリがどんどん追加され楽しめること。特にAndroid TVではゲームアプリをインストールすることができるのでTVだけでもゲームを楽しむことが出来る。無料アプリも多く見つけることができるので暇つぶしにはちょうどいいと思う。ただし、はまりすぎるとアプリ内課金することになるが、、、ここでは、ゲームパッドを買わなくても楽しめるAndroid TVアプリを紹介する。

* インストール数は記事作成時、2015/10/11のものです。

Despicable Me: Minion Rush

以下のCrossy Roadと同じくシンプルなランナーゲームで、ひたすら走り続ける主人公をバナナを取りながら障害物をよけながらすすむというもの。アニメーションは3Dで凝って作られている。(Android TVでは多少重いかもしれない)

Download on Google Play Store

Crossy Road

  • Installs: 50M ~
  • Offered by: Yodo1 games

It is very simple, “endless arcade hopper” game. Yes, it is endless. You can try and continue as far as you can go. There are many characters, e.g. pack man, chicken, etc. After you get coin in the game or purchasing, you can play the game with these characters.

Download on Google Play Store

Asphalt: Airborne 8

The exciting race game! As you can see, the graphics is so nice and music is also very dynamic and exciting when you play with the TV! I feel it is really good to play with big TV display, rather than just a hand phone.

There are many racing games on Android TV Google Play Store, but many of them requires game pad to play. The game made by Gameloft is very well-made in detail. It can be played without game pads or you can play with remote controllers as well. When I play with SONY BRAVIA, it detected remote controller, and shows the Tutorial specific for this remote controller.

Download on Google Play Store

Red Ball 4

  • Installs: 10M ~
  • Developer: FDG Entertainment GmbH & Co.KG

It is also an simple platform action game. The biggest difference from other game is that hero is ball, which has an inertia to keep rotating.

Download on Google Play Store

BADLAND

  • Installs: 10M ~
  • Offered by: Frogmind

Simple runner action game as well. But it is more simple that only “center” key is enough for playing game. Nice thing is you can enjoy a game. Even you die in the game, you can continue without pay extra money.

Download on Google Play Store

Spider Solitaire

  • Installs: 5M ~
  • Offered by: 1bsyl

The card puzzle game, as you can easily imagine from image. At first I was thinking of a game Solitaire, but it was different. However, the rule is similar so you can play without any explanation if you know the rule of Solitare (and FreeCell). This game is not so difficult, I took around 30 min to win one game. See Wikipedia page for the details.

Download on Google Play Store

Jelly King: Rule The World

  • Installs: 5M ~
  • Offered by: Jellyking Studio

Very simple, easy platform action game. Hold left & right button to collect the ball.

Download on Google Play Store

Does not Commute

  • Installs: 1M ~
  • Offered by: Mediocre

This is a driving game, but not racing game. It was introduced as “A strategic driving game” in the Google Play Store. So why “strategic”? This game is unique that you will drive tens of cars  in the same map, and at the time when you drive new cars, old cars which you have driven interferes the way. You struggle because of your driving… The map made like 1970’s town together with the matching background jazz music makes this game atmosphere cool!

You can play the game only left and right key, thus without game pad. But you feel comfortable with gamepad, since X key can be used to rewind current stage.

Download on Google Play Store

PAC-MAN 256 – Endless Maze

  • Installs: 1M ~
  • Offered by: BANDAI NAMCO Entertainment Europe

I think no need to explain what PAC-MAN is. This is derivative version of PAC-MAN, that aims to go up upper and upper of this endless stage, which is similar to Crossy Road.

The game is free without power up, and you can pay as an option to get extra power up.

Download on Google Play Store

Sky Force Anniversary

  • Installs: 10K ~
  • Offered by: Infinite Dreams

Shooting game. The number of install looks small, this is just because the game is provided only for Android TV devices, while all other game apps above are provided both Android phone and TV devices.

You can also enjoy multi-player play. For example 1P uses remote controller & 2P uses game pad.

Download on Google Play Store

Comment

Game is now cross-platform

I could notice current game market trend during summarizing this post. Now game is made for cross-platform. Most of the popular game app is not only for Android TV, but it is for PC, Play Station 3 or 4, Wii, Android phone/tablet etc.  So, big game software companies are just importing existing game into Android TV platform. Since it was already made for other platform (using a big development cost), the quality of these cross-platform game is usually quite nice.

Importance of beautiful graphics and background music/sound

After experiencing to play Android TV games, I felt Android TV game and Android phone game are different. We can enjoy dynamic, beautiful graphics with big screen. Just a difference of screen size? I would say the difference of screen size provides different user experience!!!

Also, the importance of sound becomes much higher.  You might play Android phone games with mute, however, you definitely play Android TV games with (maybe big) sound. Especially for racing games or shooting games, the dynamic sound makes user’s emotion more exciting. Additionally, home theater system provides you much presence for the game.

Simple game is also just fine

As written above, most popular apps are high quality. Graphics is smooth 3D, and sound is also created deeply to express game world’s atmosphere.

This is an opposite comment from above, but there also is a demand to play simple, easy game for just enjoy a slice of time. It is possible to reach more than 1 Million download with simple game apps (like Jelly king, PAC-MAN), 1 Million is quite enough number isn’t it?

What kind of game is not yet on the Android TV market?

There already is action, racing, shooting, simple platform game on Google Play Store, even though the future market growth of Android TV market is not known yet.

As one opinion, I felt Music game is interesting. I found the app “Radiohammer Station” on Google Play Store, but it was not optimized for Android TV device yet. I could not play with game pad key.

Another category is Social game like FarmVille. Especially, it is a interesting topic to consider game for women. For example, housewife is alone in the house on the daytime of weekday, they are important target for TV market to consider.

WordPressをマルチサイト化して多言語対応してみたので手順まとめ

海外で生活していたこともあってもともと英語で書きはじめたこのブログだが、やはり日本語で書きたかったりすることがある。そこでこのWordPressを多言語化してみた。結果的にはWordPressのマルチサイト化という機能を使って、もともとあった英語サイトに加えて、新たに日本語サイトを構築して運用する、という形になった。

WordPressの多言語化方法

まずはじめに、ただ多言語化するといってもいくつも方法がある。それぞれの方法については以下のリンクに詳しく書かれている。

参照:

ここでは簡単に紹介すると、多言語化には大まかに4つの方法がとれる。

  1. 国別のホストサーバーに別々のWordPressをインストール
    言語別ごとに独立なWordPressとして運用する。
    メリット:国ごとにホストサーバーを用意するので、ネットワークトラフィックを考えると理想。
    デメリット:お金・人手がないとできないだろう。
  2. マルチサイト (本サイトではこれを採用)
    WordPressでサポートされている機能であるマルチサイト機能を用いて、一つのサーバー、一つのWordPress内にマルチサイトを構築し、それぞれを言語別サイトとする方法。
    その後、マルチサイトで多言語対応するためのプラグインを使うメリット:1つのサーバー内で管理できる。別サイトとして独立しているので言語別にサイトをカスタマイズ出来る。
    デメリット:言語別サイトごとにテーマやプラグインの設定をする必要あり。
  3. 多言語プラグインを使う
    一般的にWordPressで何かしようと思ったらまずプラグインを使うことを考えるだろう。多言語化プラグインはいくつかのものがあり、有名なものとしては
    WPMLqTranslate XBogoPolylang
    がある。使ったことは無いが、それぞれが独自の仕組みで動いているので互換性があまりない印象。
    メリット:プラグインをインストールするだけなので比較的簡単。
    デメリット:プラグインで多言語対応しようとすると、将来の拡張性を考えた場合に不安。将来プラグインの変更をしたくなったりした場合に互換性がなくなってしまうものが多い。
  4. 1つのWordPressサイト、プラグイン無しで
    単純に投稿をそれぞれの言語で書く方法。個人ブログで特に細かく運用するわけではなく、それぞれの言語を行き当たりばったりで書いていくならこれでもいいと思う。
    メリット:設定不要。
    デメリット:言語ごとの管理はできない。

上にいくほどより労力がかかるが、言語別の投稿をしっかりと管理したり、言語別ごとにサイトのカスタマイズ・最適化ができる。自分は初め3の多言語プラグインを調べていたが、結局将来的に別のプラグインに移りたくなった時、互換性がなくなるのが心配で2のマルチサイト構築を採用することにした。

今回はすでに一つのWordPressを運用していてそこに新しくサイトを追加するケースを説明する、流れとしては、

  1. データのバックアップ
  2. サブドメイン設定
  3. WordPressマルチサイト機能の有効化
  4. サイトを新規作成
  5. Multi Language Switcherプラグインを導入
  6. 新規サイトでテーマ・プラグイン等の設定を行う

普通にプラグインをインストールするだけの場合と比べると少し手順も多くなる。

なお、WordPress自体を新規に立ちあげたい場合は、マルチサイト機能が初めから設定済みのパッケージがBitNamiから提供されているようだ。

データのバックアップ

WordPressのファイル一式、およびデータベースのバックアップをとっておくこと。サーバーからローカルにWordpressのファイル一式をコピー、サーバー上のデーターベースのデータをエクスポートしておく。マルチサイト化にあたってはwp-config.phpや.htaccessファイルを変更することになり、またマルチサイトを構築すると新たなサイト用にデータベーステーブルもいろいろと追加されるためデータのバックアップをとっておくのが無難だろう。ただし、マルチサイト化しても元々のデータベーステーブルはそのままで、新しく作ったサイト分のテーブルが新しく作られるだけだと思うのでトラブルが起きる可能性は低いとは思う。

サブドメイン設定

ここからが本題。公式ページはBefore You Create A Networkを参照。

マルチサイトのネットワーク構築方法は2つある。

  • サブドメイン型site1.example.com, site2.example.comのようにサブドメインにてサイトを管理する
  • サブディレクトリ型example.com/site1, example.com/site2のようにパスでサイトを管理する

今回はサブドメイン型で、新たにjp.corochann.comというサイトを立ちあげたいので、jp.corochann.comをWordPressとリンクさせる必要がある。マルチサイトは同じWordPressファイルの中で処理されるので、DNSの設定をjp.corochann.comがcorochann.comと同じWordPressがインストールされているフォルダへリンクさせるようにする。

自分は他のドメインショップでcorochann.comを買い、サーバーはロリポップで運用しているのでその一例をあげておく。この場合はロリポップ側のDNS設定を行う。

これは簡単で、サーバーのユーザーページにログイン後、独自ドメイン>サブドメイン設定の項目から、作りたいサブドメインURLアクセスを既存のWordPressフォルダへリンクさせるだけでいい。設定が反映されるまでは1時間程度かかる。この段階では、実際にそのサブドメインにアクセスして、オリジナルのWordPressのサイトと同じものが表示されれば成功だ。(jp.corochann.comにアクセスして、corochann.comと同じ内容が表示される。)

WordPressマルチサイト機能の有効化

公式ページとしては、Create A Network (日本語訳) を参照。

マルチサイト機能の有効化

デフォルトのWordPressのままでは、マルチサイト機能は使えない。有効化するにはwp-config.phpファイルの/* That's all, stop editing! Happy blogging. */と書いてある部分の上に以下を加える。

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );

編集後にWordPressのダッシュボードに戻り、ブラウザを更新するとツールタブにネットワーク設定が追加されているはずだ。

マルチサイト機能の使用

ネットワーク設定に進む前に、まず全てのプラグインを無効化しておく。そしてネットワーク設定を押してインストールを行う。ネットワークタイトルとE-mailを設定して次に進もう。

ネットワーク設定画面、公式サイトより

しかし、すでに既存のWordpressを使用していてそこに新しく別のマルチサイトを立ちあげる場合にはサブドメイン型しか選べないようだ。今回はもともとjp.corochann.comというサブドメイン型で新たにサイトを作る予定だったので問題なかった。

次は画面に従って、wp-config.phpに以下を追加

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'corochann.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

ちなみに、先程追加したdefine( 'WP_ALLOW_MULTISITE', true );と今回の1行目define( 'MULTISITE', true );は違う文章なので注意。自分はこれを同じ文章だと思ってはまってしまった。。。

またwp-config.phpと同階層にある.htaccessを以下のように書き換える。

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

書き換えたら、再度ブラウザを更新してログインし直す。うまくマルチサイト機能が有効化されていれば、上の画像のように”My Sites” or “参加サイト”という項目がダッシュボードに追加されている。

もし失敗してうまくWordPressが表示されなくなったときはwp-config.phpで追加した部分をコメントアウトすればもとに戻るはず。

 サブドメインにサイトの新規作成

これで事前準備が終了で、ここから実際に新たなサイトを立ち上げる。新規サイトを先ほど作成したサブドメインjp.corochann.comに割り当てよう。

ダッシュボード画面上部の参加サイト(My Sites)>サイトネットワーク管理者 (Network Admin)>サイト (Sites)を選択して、サイトの管理画面に移動する。

上にあるAdd Newボタンを押してサイトの新規追加が行える。

この画面でサブドメインを指定することで、そのサブドメインに新規サイトがリンクされるようになる。

これで、サブドメインにアクセスすると、オリジナルのサイトとは別に新しいサイトが表示されるようになっているはず。

Multi Language Switcherの導入

Multisite Language SwitcherはWordPressプラグインで、複数のマルチサイトを言語別でリンクすることが出来る。インストール・設定方法はMultisite Language Switcher Install, config & useも参照。

公式サイト

インストール参考サイト

サイト言語の設定

プラグインActivateの前にダッシュボードの設定 (General)>サイトの言語 (Site Language)でそれぞれのサイトに対し、言語を適切に設定しておく。

プラグインのインストール、設定

今後プラグインなどをインストールする場合は個別のサイトではできないので、参加サイト>サイトネットワーク管理者>ダッシュボードで、マルチサイト全体にインストールする。通常のプラグイン同様、ダッシュボード (Dashboard)>プラグイン (Plugins)> 新規追加(Add New)からインストール出来る。

その後、それぞれのサイトでプラグインをActivateしよう。ダッシュボードの設定 (Settings)>マルチ言語スイッチャー (Multi Language Switcher)で詳細設定が出来る。

英語サイトの設定
日本語サイトの設定

テーマのカスタマイズでウィジェットの設置

プラグインをActivateしただけでは言語切り替えボタンは表示されないので、外観 (Appearance)> カスタマイズ (Customize)から、Multi Language Switcherのウィジェットを追加しよう。

上の画像は国旗と説明文(Flag and description)を表示させた場合のウィジェット例。

投稿ポストごとに関連記事をリンク付け

英語サイト (http://corochann.com)と日本語サイト(http://jp.corochann.com)の各記事の翻訳はそれぞれの記事ごとに手動でリンクさせる必要がある。(逆に翻訳記事がないものはリンクさせなければよい。)

各記事投稿画面右上に関連する翻訳記事をリンクさせるためのフィールドがあるので、そこで翻訳記事がある場合には指定できる。

これで、Multi Language Switcherの設定は終了。

テーマ・プラグインの設定など

最後に、新しく立ち上げたサイトはまだ初期設定のままなので、色々と設定を行う必要がある。とりあえずは、

  • テーマ設定
  • 各種プラグインのActivate、設定
  • テーマのカスタマイズ
  • パーマリンク設定

などをオリジナルのサイトをもとに設定していく。これでひと通りマルチサイトの立ちあげは完了。

記事としてまとめてみると思ったより長かった。。。