load_theme_textdomain
Функция load_theme_textdomain
в WordPress используется для загрузки переводов шаблона темы. Функция позволяет использовать локализацию для поддержки нескольких языков. Эта функция обычно вызывается в файле functions.php
темы.
Синтаксис
load_theme_textdomain($domain)
- $domain (строка, обязательный): Текстовый домен, который будет использован для перевода строк.
- $path (строка, необязательный): Путь к каталогу, где находятся файлы перевода. По умолчанию используется каталог
languages
внутри вашего шаблона.
Пример использования
Предположим, у нас есть шаблон под названием mytheme
и мы хотим добавить поддержку локализации.
- Создание файла локализации:
- Создайте каталог
languages
внутри вашего шаблона:wp-content/themes/mytheme/languages/
. - Создайте файл перевода, например, для русского языка:
ru_RU.po
иru_RU.mo
.
- Создайте каталог
- Добавление функции в
functions.php
:
Эта строка будет переведена на русский язык, если соответствующий перевод существует в файле ru_RU.mo
.
Подробное объяснение
Создание файлов перевода: Файлы перевода создаются с помощью инструментов, таких как Poedit.net. В этих файлах содержатся исходные строки и их переводы. Например, в файле ru_RU.po
будет запись:
msgid "Hello, World!"
msgstr "Привет, мир!"
Загрузка текстового домена: Функция load_theme_textdomain
указывает WordPress, где искать файлы перевода для данного текстового домена. В приведенном выше примере текстовый домен — это mytheme
.
Функции для перевода:
__()
: Возвращает переведенную строку. Используется для простых строк._e()
: Выводит переведенную строку. Аналогично__()
, но сразу выводит результат._n()
: Обеспечивает поддержку множественных форм. Используется для строк, которые могут изменяться в зависимости от числа (например, «1 комментарий» и «5 комментариев»)._x()
,ex()
,_nx()
: Дополнительные функции, предоставляющие контекст для перевода
Пример использования с множественными формами
Если $comment_count
равно 1, будет использовано первое значение (‘%s comment’). Если больше 1 — второе (‘%s comments’).
Использование load_theme_textdomain
позволяет легко локализовать ваш шаблон WordPress, делая его доступным для пользователей, говорящих на разных языках. Эта функция является важной частью создания многоязычных сайтов на WordPress.
Функции WordPress
- wp_tag_cloud
- wp_list_pluck
- has_tag
- wp_add_inline_script
- sanitize_title
- paginate_links
- single_term_title
- _nx
- disabled
- checked
- redirect_canonical
- is_embed
- has_nav_menu
- get_the_posts_navigation
- wp_get_nav_menu_object
- get_nav_menu_locations
- wp_list_sort
- the_archive_description
- posts_nav_link
- wp_check_browser_version
- get_privacy_policy_url
- get_pagenum_link
- get_next_posts_link
- is_author
- the_title_attribute
- get_the_modified_date
- get_the_title_rss
- wp_trim_words
- has_excerpt
- get_the_excerpt
- get_sample_permalink
- get_bloginfo
- get_delete_post_link
- edit_post_link
- sanitize_title_with_dashes
- is_post_type_archive
- update_post_meta
- add_post_meta
- delete_transient
- get_transient
- set_transient
- register_post_type
- register_taxonomy
- wp_title
- get_post_status
- absint
- wp_loginout
- get_search_query
- locate_template
- get_stylesheet
- get_terms
- wp_lostpassword_url
- get_blog_details
- nocache_headers
- wpmu_activate_signup
- is_ssl
- remove_query_arg
- wp_unslash
- wp_registration_url
- add_query_arg
- get_the_modified_time
- esc_attr_e
- get_post_ancestors
- wp_safe_redirect
- get_the_ID
- get_the_title
- get_permalink
- is_user_logged_in
- wp_login_url
- wp_logout_url
- wp_kses
- the_ID
- post_class
- post_password_required
- get_the_password_form
- the_permalink
- get_category_link
- get_categories
- wp_robots
- get_custom_logo
- remove_theme_support
- current_theme_supports
- wp_get_document_title
- is_404
- is_main_query
- remove_action
- wp_nav_menu
- apply_filters
- register_nav_menus
- wp_script_is
- comments_template
- get_template_part
- get_header
- get_footer
- get_search_form
- add_shortcode
- get_template_directory_uri
- get_query_var
- wp_redirect
- current_user_can
- comments_open
- wp_html_excerpt
- human_time_diff
- is_tax
- is_date
- is_category
- in_the_loop
- is_home
- wp_get_theme
- wp_die
- do_robots
- wp_get_recent_posts
- is_year
- is_time
- is_front_page
- get_children
- get_boundary_post
- get_pages
- home_url
- get_option
- body_class
- wp_footer
- bloginfo
- language_attributes
- wp_head
- is_single
- is_singular
- is_archive
- is_search
- is_page
- add_action
- wp_enqueue_style
- wp_enqueue_script
- get_template_directory
- add_theme_support