我使用的是WPML语言,无法为下一步找到解决方案:
在语言切换器上我想隐藏语言,比如说 - "他",如果当前语言可以说例如"ar",那么当我们在阿拉伯语网站上我们不会在选择器上看到希伯来语,同样的事情如果我们用希伯来语,阿拉伯语就不会显示出来.
缩短词语:我想要的是 - 如果我们在阿拉伯语网站上 - 希伯来语旗帜将被隐藏.
我尝试了什么:
function language_selector_flags(){
$languages = icl_get_languages('skip_missing=0');
if(!empty($languages)){
if(ICL_LANGUAGE_CODE=='en')
{
$order = array('ar'); //Specify your sort order here
}
elseif(ICL_LANGUAGE_CODE=='he')
{
$order = array('en', 'ar'); //Specify your sort order here
}
foreach ($order as $l) {
if (isset($languages[$l])) {
$l = $languages[$l]; //grab this language from the unsorted array that is returned by icl_get_languages()
//Display whatever way you want -- I'm just displaying flags in anchors (CSS: a {float:left; display:block;width:18px;height:12px;margin:0 …
Run Code Online (Sandbox Code Playgroud) 我在WordPress 3.8.1中使用WPML 3.0.2-a
我有一个像这样定义的自定义帖子类型:
function add_custom_posts(){
$args = array(
'labels' => array(
'name' => __( 'Showcases' ),
'singular_name' => __( 'Showcases' ),
'add_new_item' => __( 'Add New Showcase'),
'edit_item' => __( 'Edit Showcases' ),
'view_item' => __( 'View Showcase' ),
'search_items' => __( 'Search Showcases' ),
'not_found' => __( 'No Showcases found.' ),
'not_found_in_trash' => __( 'No Showcases found in Trash.' )
),
'public' => true,
'has_archive' => 'case-studies',
'menu_position' => 5,
'taxonomies' => array('post_tag'),
'supports' => array( 'title', 'thumbnail', …
Run Code Online (Sandbox Code Playgroud) 我的 WordPress 网站已损坏,仅显示以下错误消息:
Fatal error: Uncaught Error: Call to undefined method WP_Textdomain_Registry::reset() in /var/www/htdocs/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php:139
Stack trace:
#0 /var/www/htdocs/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(119): WPML\ST\MO\Hooks\LanguageSwitch->resetTranslationAvailabilityInformation()
#1 /var/www/htdocs/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php(73): WPML\ST\MO\Hooks\LanguageSwitch->changeMoObjects('view-subscripti...')
#2 /var/www/htdocs/wp-content/plugins/wpml-string-translation/classes/TranslateWpmlString.php(167): WPML\ST\MO\Hooks\LanguageSwitch->switchToLocale('view-subscripti...')
#3 /var/www/htdocs/wp-content/plugins/wpml-string-translation/classes/TranslateWpmlString.php(109): WPML\ST\Trans in /var/www/htdocs/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LanguageSwitch.php on line 139
Run Code Online (Sandbox Code Playgroud)
我只能在将“.disabled”添加到插件文件夹(wpml-string-translation)名称后才能访问该网站,但这会禁用该插件,并且该网站需要它才能工作。
我在WPML论坛上提出了这个问题,但希望有人能够提供帮助.
我正在尝试将slug翻译为自定义帖子类型
英文网址是http://brigade-electronics.com/nl/products/backeye360/
翻译的URL应为http://brigade-electronics.com/nl/producten/backeye360/
相反,在启用translate slug选项后导航到URL时出现404错误
复制问题的步骤:
我已在故障排除页面中运行所有选项,以清理数据库.
这似乎只适用于产品部分中的某些页面.最奇怪的部分是网站的加拿大部分,因为术语"产品"是英文的,因此无论是否有翻译的slu,URL都保持不变,但是,我仍然在这些页面上得到404错误.
值得注意的是,所有其他自定义帖子类型都可以正常工作.
自定义帖子类型已以标准方式注册
function register_products_post_type() {
$labels = array(
'name' => __( 'Products', '' ),
'singular_name' => __( 'Product', '' )
);
$args = array(
'label' => __( 'Products', '' ),
'labels' => $labels,
'description' => '',
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_rest' => false,
'rest_base' => '',
'has_archive' => false,
'show_in_menu' => true,
'exclude_from_search' => false,
'capability_type' …
Run Code Online (Sandbox Code Playgroud) 我有一个使用三种语言的站点,当我编辑其中一种语言的转发器字段时,其他语言的转发器字段的值变为空。这仅适用于站点中的某些转发器字段。
我有我的php文件字符串,如下所示:
<?php
__('My string A', 'a_theme');
_e('My string B', 'a_theme');
?>
Run Code Online (Sandbox Code Playgroud)
并且没有出现在"字符串翻译"中.
我还购买并安装了这个主题:http : //preview.ait-themes.com/index.php?bartype=desktop& theme= touroperator和该主题的字符串也不会出现在WPML的"字符串翻译"中.
这是我安装时已经在主题中的字符串的一个示例:
<input type="text" id="dir-searchinput-location" class="dir-searchinput-select" placeholder="{__ 'Destination'}">
Run Code Online (Sandbox Code Playgroud)
是否有一些我需要做的额外配置或其他什么?
感谢帮助
我有一个全新的wordpress安装,我在我的functions.php中写了一些快速重写规则,看起来像这样 -
// "rewrite" /assets/xyz to /assets/?asset=xyz
function assets_rewrite_rule($rules) {
global $wp_rewrite;
$asset_rule = array( // (not tested)
'assets/(.+)/?' => 'index.php?pagename=Assets&asset=$matches[1]'
);
return array_merge($asset_rule, $rules);
}
add_filter('page_rewrite_rules', 'assets_rewrite_rules');
Run Code Online (Sandbox Code Playgroud)
我用最原始的方式将我的侧边栏翻译成WPML和字符串翻译.
这是我的侧边栏的英文部分(未翻译) -
<div class="sideall">
<div class="sidebar-mai1">
<div class="sidebar-name">
<img style="width: 25px; margin-right: 10px; margin-bottom: -7px;" title="first asset" src="/wp-content/images/sidbar-assets/firstasset.png" alt="first asset" />First Asset</div>
<div class="sidebar-btn">
<a class="btn-sidebar" href="/assets/first-asset/">Review</a>
<a class="btn-sidebar1" href="/buy/first-asset">Trade Now!</a></div>
<div style="clear: both;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
在尝试翻译其他语言时(比如说意大利语),wpml拒绝将我的更改保存到评论链接.就像我的重定向规则以某种方式影响它一样.
这是我添加到侧边栏的翻译 -
<div class="sideall">
<div class="sidebar-mai1">
<div class="sidebar-name">
<img style="width: 25px; margin-right: 10px; margin-bottom: -7px;" …
Run Code Online (Sandbox Code Playgroud) 我正在使用带有插件The Events Calendar的法语WordPress .
这个插件附带一个捆绑的法语翻译,但它有一些错误.我想修复它们但更换原始文件是一个坏主意,因为它将被下一次更新所取代.我联系了开发人员提交修复程序但可能需要一些时间.
在此期间,我想从我的模板目录加载一个副本.我已经尝试过多种方式:
load_plugin_textdomain( 'tribe-events-calendar', get_template_directory() . '/languages' );
Run Code Online (Sandbox Code Playgroud)
或者
add_filter('override_load_textdomain', …)
Run Code Online (Sandbox Code Playgroud)
在我的functions.php中,但它似乎不起作用.我唯一能做的就是禁用原始翻译文件的加载.
有没有办法在加载时替换插件转换文件?我也使用WPML,但在"Translate with .mo files"模式中没有"Translate with WPML",所以我无法动态更改插件翻译.也许WPML可以加载我自己的事件日历翻译?
我试图通过ICL_LANGUAGE_CODE
我的插件获取当前的语言代码,但我不能,它没有定义,这是这个的结果
echo "Code: ".ICL_LANGUAGE_CODE;
Run Code Online (Sandbox Code Playgroud)
是
Code: ICL_LANGUAGE_NAME
Run Code Online (Sandbox Code Playgroud)
当我尝试以下操作时
global $sitepress;
$current_language = $sitepress->get_current_language();
echo "Code:". $current_language ;
Run Code Online (Sandbox Code Playgroud)
我得到空白屏幕。
我不知道通过什么方式可以得到它。
在主题functions.php 中一切正常。谢谢。
我正在使用自定义Wordpress插件,但无法将其准备为多语言。
它确实正确加载了主要语言的.mo文件,但是在切换语言(使用WPML)时,它始终显示主要语言(在这种情况下为德语)的翻译。因此,当我使用英语时,它仍会显示德语翻译。
这是我的代码:
在标题中:
/*
Plugin Name: MM Jobs
Plugin URI: http://example.com/
Description: Custom Jobs Plugin to create new Jobs
Version: 1.3.84
Author: Jekey
Author URI: http://example.com/
Text Domain: mm-jobs
Domain Path: /languages
*/
Run Code Online (Sandbox Code Playgroud)
然后:
function mm_jobs_plugins_loaded() {
load_plugin_textdomain( 'mm-jobs', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'mm_jobs_plugins_loaded', 0 );
Run Code Online (Sandbox Code Playgroud)
.mo文件正确,因为它已经加载了德语翻译。命名为:/ plugins / mm-jobs / languages /下的mm-jobs-zh_CN.mo或mm-jobs-de_DE.mo
您知道导致问题的原因是什么?