群馬県でPythonを使ったAIやシステムを開発しているファントム

Navigation
群馬県でPythonを使ったAIやシステムを開発しているファントム

群馬県でPythonを使ったAIやシステムを開発しているファントムです。企業の経営課題を最適なテクノロジーで解決します。テックブログではPythonを中心にプログラミングに役立つ情報を発信しています。

投稿を検索する


  • 株式会社ファントム コーポレートサイト

カテゴリー



  • AWS 16
  • Django 45
  • FastAPI 4
  • Flask 8
  • GCP 1
  • Information 37
  • Other 32
  • PHP 2
  • Python 93
  • Pythonista 3
  • Rust 1

タグ


Alembic API argparse Beautiful Soup black Channels charset CodeCommit datetime Django REST framework Docker enumerate f-string git GitHub glob Google Colaboratory i18n IAM Internship Jupyter Lambda Matplotlib Nginx OpenCV pandas PIL Pillow PostgreSQL PyCharm PyCon pyenv PyTorch Redis Rembg ReportLab requests S3 Sentry slack tqdm uWSGI venv Vue.js youtube
このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。

© 2022 Fantom, Inc.

Hydra WordPress Theme by EckoThemes.

Published with WordPress.

Related Articles

Filter by Category

  • Python(93)
  • Django(45)
  • Information(37)
  • Other(32)
  • AWS(16)
  • Flask(8)
  • FastAPI(4)
  • Pythonista(3)
  • PHP(2)
  • GCP(1)
  • Rust(1)

Filter by Author

  • EIGHT (14)
  • hayai017 (2)
  • press (196)
Back to Latest Articles
Django

Djangoの国際化(i18n)で多言語化(前半)

Djangoの国際化(i18n)で多言語化(前半) Djangoの国際化(i18n)で日本語と英語の多言語化サイトを構築します。 コードはGitHubリポジトリにあげています。 開発環境 ソースコード multiling […]

Posted on 14th 6月 2020 by press

Python

多次元配列から最大値、最小値を取得

多次元配列から最大値、最小値を取得 Pythonで複数の配列からなる多次元配列から最大値、最小値を取得する方法です。一次元配列も同じやり方で最大値、最小値を取得可能です。 モジュールのインストール ソースコード arr1 […]

Posted on 4th 6月 2020 by press

Python

Pythonで文字列をリスト化して一文字づつ処理

Pythonで文字列をリスト化して一文字づつ処理 Pythonで文字列をリスト化して一文字づつ処理する方法です。サンプルでは一文字づつ文字をshift-jisに変換して、変換できない文字を表示します。 開発環境 ソースコ […]

Posted on 1st 6月 2020 by press

Information

2020年GW休業のお知らせ

2020年GW休業のお知らせ 平素は格別のお引立てを賜り、厚く御礼申し上げます。 誠に勝手ながら、弊社では下記日程をゴールデンウィーク休業とさせて頂きます。   2020年5月2日(土)~ 2020年5月6日(水)   […]

Posted on 1st 5月 2020 by press

Python

PillowでPNGファイルを変換するときの背景処理

PillowでPNGファイルを変換するときの背景処理 PillowでPNGファイルをJPGに変換するときに、背景が透過のファイルを変換すると透過部分が黒くなったり、不自然な途切れ方をしたりといった時の対処方法です。 開発 […]

Posted on 19th 3月 2020 by press

Python

名前に現在時刻を入れたファイルが連番かどうか判定(後半)

名前に現在時刻を入れたファイルが連番かどうか判定(後半) 前回からの続きです。 前回は連番になっていたらまとめてリスト化しましたが、今回はまとめたファイルを動画に変換して書き出します。 コードはGitHubリポジトリにあ […]

Posted on 14th 2月 2020 by press

Information

信州ベンチャーサミットに弊社代表の石井が登壇しました

信州ベンチャーサミットに弊社代表の石井が登壇しました 2020年2月8日(土)に長野市芸術館でピッチイベント「信州ベンチャーサミット2020」に弊社代表の石井が登壇しました。

Posted on 10th 2月 2020 by press

Python

名前に現在時刻を入れたファイルが連番かどうか判定(前半)

名前に現在時刻を入れたファイルが連番かどうか判定(前半) なにかアクションがあった際に生成されるファイル名に現在時刻が入ったファイルが、連番になっているかどうかを判別して連番になっていたらまとめてリスト化する方法です。手 […]

Posted on 3rd 2月 2020 by press

Python

Beautiful Soupでbrタグを改行コードに変換する

Beautiful Soupでbrタグを改行コードに変換する Beautiful Soupでスクレイピングしたdivタグ内にbrタグがあった際に改行コードに変換する方法です。以下のコードはbrタグが複数ある場合にも対応し […]

Posted on 27th 1月 2020 by press

Python

フォルダ内のファイルを複数毎にzip形式に圧縮

フォルダ内のファイルを複数毎にzip形式に圧縮 ファイルをまとめてzip形式に圧縮してしまうと容量が増えてしまうので、メールなどで送るために複数個に分けて圧縮ファイルを作りたいときがあります。ファイル数がそれほど多くない […]

Posted on 21st 1月 2020 by press

Information

2020年1月1日(水)ぐんま経済新聞に掲載されました

2020年1月1日(水)ぐんま経済新聞に掲載されました 2020年1月1日(水)ぐんま経済新聞の新年特別号 IT特集に弊社代表の石井が掲載されました。

Posted on 2nd 1月 2020 by press

Python

OpenCVで複数の画像から動画ファイルを作る

OpenCVで複数の画像から動画ファイルを作る 前回に続き、今回は複数の画像をまとめて動画ファイルに変換する方法です。gifアニメーションを生成するときはPillowを使いましたが、動画を生成するときはOpenCVを使い […]

Posted on 30th 12月 2019 by press

Python

複数の画像からgifアニメーションを作る

複数の画像からgifアニメーションを作る 定点撮影などで連番になっている複数の画像をまとめてgifアニメーションに変換する方法です。 コードはGitHubリポジトリにあげています。 コード 結果 解説 import gl […]

Posted on 28th 12月 2019 by press

Python

SeleniumでChromeが立ち上がらない

SeleniumでChromeが立ち上がらない Pythonでスクレイピングする時にSeleniumでChromeを立ち上げますが、その際に以下のエラーが出てブラウザが起動しない場合があります。その時の解決方法です。 解 […]

Posted on 24th 12月 2019 by press

Information

Daiwa Innovation Networkに弊社代表の石井が登壇しました

Daiwa Innovation Networkに弊社代表の石井が登壇しました 2019年12月19日(木)に大和証券本店で開催された大和証券株式会社主催のピッチイベント「第82回 Daiwa Innovati […]

Posted on 20th 12月 2019 by press

Information

2019年の冬季休業のお知らせ

2019年の冬季休業のお知らせ 誠に勝手ながら、弊社では下記日程を冬季休業とさせていただきます。 冬季休業期間 2019年12月28日(土)~2020年1月5日(日) 期間中にいただきましたお問い合わせにつきましては、冬 […]

Posted on 16th 12月 2019 by press

Information

群馬イノベーションアワード2019に登壇しました

群馬イノベーションアワード2019に登壇しました 12/7(日)にヤマダグリーンドーム前橋で開催された群馬イノベーションアワード2019で弊社代表の石井がファイナリストとして登壇しました。

Posted on 10th 12月 2019 by press

Django

ダウンロードするファイルの文字コードを動的に変更

ダウンロードするファイルの文字コードを動的に変更 ウェブアプリケーションの中でCSVやテキストファイルをダウンロードさせた時に文字化けが発生する事があります。使用する文字コードが決まっていれば予め固定してしまう事で文字化 […]

Posted on 2nd 12月 2019 by press

Python

Google Colaboratoryで画像をアップロードして表示する

画像のアップロード Google Colaboratoryで画像をアップロードして表示する方法です。画像解析以外にもCSVのアップロードなどの際にも同じ方法でアップロードできます。 画像のインライン表示 今度はアップロー […]

Posted on 31st 10月 2019 by press

Information

2019年10月18日(金)の上毛新聞に掲載されました

2019年10月18日(金)の上毛新聞に掲載されました

Posted on 18th 10月 2019 by press

View Latest Posts
Django

Djangoの国際化(i18n)で多言語化(前半)


press
Djangoの国際化(i18n)で多言語化(前半)
Posted on 14th 6月 2020 by press
2024年度 インターンシップ 募集開始

Djangoの国際化(i18n)で多言語化(前半)

Djangoの国際化(i18n)で日本語と英語の多言語化サイトを構築します。

コードはGitHubリポジトリにあげています。

開発環境

Python 3.8.0
Django 3.0.7

.
├── app
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
├── multilingualization
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── templates
    └── index.html

ソースコード

multilingualization/settings.py

...
import os

from django.utils.translation import ugettext_lazy as _
...

...
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',  # ここを追加
    'django.middleware.common.CommonMiddleware',
    ...
]
...

...
LANGUAGE_CODE = 'ja'

USE_I18N = True
...

...
LANGUAGES = [
    ('en', _('English')),
    ('ja', _('Japanese')),
]

LOCALE_PATHS = [
    os.path.join(BASE_DIR, 'locale')
]
...

from django.utils.translation import ugettext_lazy as _
モジュールをインポート(ugettext_lazy)は_と省略名でインポートするのが慣例

django.middleware.locale.LocaleMiddleware
を追加(注:django.middleware.common.CommonMiddlewareの上に追記してください)

LANGUAGE_CODE = 'ja'
言語を日本語に設定

USE_I18N = True
デフォルトはTrueになっています

LANGUAGES = [
('en', ('English')),
('ja', ('Japanese')),
]

使用する言語を追加

LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale')
]

翻訳ファイルを保存するディレクトリを指定

multilingualization/urls.py

from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.urls import path

from app.views import index

urlpatterns = i18n_patterns(
    path('admin/', admin.site.urls),
    path('', index),
    prefix_default_language=False
)

prefix_default_language=False
URLにprefixがない場合はsettings.pyで指定されたデフォルトの言語(LANGUAGE_CODE = ‘ja’)になります

app/views.py

from django.shortcuts import render
from django.utils.translation import gettext as _
from django.utils.translation import get_language


def index(request):
    language_code = get_language()
    display_text = _('国際化')
    context = {'display_text': display_text, 'language_code': language_code}

    return render(request, 'index.html', context)

from django.utils.translation import gettext as _
インポートしたモジュール(gettext)は_と省略名にするのが慣例

from django.utils.translation import get_language
使用している言語を取得するためのモジュールをインポート

language_code = get_language()
使用している言語を取得

display_text = _('国際化')
翻訳したい文章を_(”)の中に入れます

context = {'display_text': display_text, 'language_code': language_code}
return render(request, 'index.html', context)
値をcontextにまとめてテンプレートに値を渡す

templates/index.html

{% load i18n %}
<!DOCTYPE html>
<html lang="{{ language_code }}">
<head>
    <meta charset="UTF-8">
    <title>{{ display_text }}</title>
</head>
<body>
<p>{% trans 'ハロー・ワールド' %}</p>
<p>{{ display_text }}</p>
</body>
</html>

{% load i18n %}
国際化するテンプレートファイルの上部に記載

<html lang="{{ language_code }}">
views.pyから受け取ったlang属性を設定

{{ display_text }}
views.pyで代入された文字(「国際化」)

{% trans 'ハロー・ワールド' %}
翻訳させたい文字はtransタグで囲む

後半から翻訳ファイルを編集していきます。

Djangoの国際化(i18n)で多言語化(後半)
ファントムYouTubeチャンネル

株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    press
    • i18n
    • Share Article:
    • Twitter
    • Facebook
    • Pinterest
    • LinkedIn
    • Reddit
    Show Comments (0)

    Comments

    Cancel Reply

    コメントを投稿するにはログインしてください。

    Related Articles

    Django

    Djangoで開発をする際に仮想環境を構築する方法

    Djangoで開発をする際にvenvを使って仮想環境を構築する方法です。pyenvがインストールされていてバージョンを切り替えできる状態を前提に進めます。 仮想環境について Pythonで開発していると開発環境では最新の […]

    Posted on 20th 5月 2019 by press
    Django

    django-import-exportで管理画面からCSVをインポート

    django-import-exportで管理画面からCSVをインポート 情報を登録する際に一件づつ入力せずにCSVからまとめてインポートして登録が行えるので初期情報を登録する時などに便利な方法です。 コードはGitHu […]

    Posted on 10th 3月 2021 by press