基于所选语言的PHP切换写入模式?

时间:2011-10-07 11:59:44

标签: php css wordpress qtranslate

我不是一个php专家,所以我在尝试编写一个代码来检测页面是否是中文时遇到了一些麻烦,如果是这样,那么写入模式会从右到左垂直。我正在使用qtranslate在英文和中文之间切换。

下面是一个示例页面:http://occa-art.com/cai-yuan/biography/

我的第一次尝试是把它放在标题中:

<?php if(qtrans_getLanguage()=='zh'): ?>
<style type="text/css">
#content, #nav {
writing-mode: tb-rl;}
</style>
<?php endif; ?>

然后我把它拿出来并在基于本教程的外部php / css样式表中尝试了以下代码:http://www.blog.hemminga.net/index.php/conditional-css-through-php?blog=6

<?php header("Content-type: text/css"); ?>

<?php
if (qtrans_getLanguage()=='zh')
{
    $chinese = 1;
}
if (qtrans_getLanguage()=='en')
{
    $chinese = 0;
}
?>

#content, #nav {
    <?php
    if ( $chinese )
    {
        echo ( "writing-mode: tb-rl; \n" );
    }
    else
    {
        echo ( "writing-mode: lr-tb; \n" );
    }
    ?>
<?php endif; ?>`

两者都没有任何影响。 非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

最后我不得不走另一条路,只需改变宽度就可以强制中文文字垂直。写作模式对我不起作用。

继承我用过的东西:

<!-- Nav layout based on language -->
<?php
if ( qtrans_getLanguage() == 'zh' ) { ?>
<style type="text/css" media="screen">
#page_nav li, #nav li {
    width: 1em;
    float: left;
    margin-right: 5px;
    margin-left: 0px;
    margin-top: 0px;
    font-size: 15px;
}
#page_nav {
    height: 86px;
}
</style>
<?php } else { ?>
<style type="text/css" media="screen">
#page_nav li {
    margin-right: 10px;
    margin-left: 0px;
    display: inline;
}
#page_nav ul {
    margin-top: 10px;
}
#page_nav {
    height: 78px;
}
</style>
<?php } ?>
<!--END-->

答案 1 :(得分:0)

您可能会收到语法错误。

当你使用{}时你应该删除这段代码:

<?php endif; ?>

并关闭CSS语句。这是一个较短的方法:

<?php header("Content-type: text/css"); ?>

#content, #nav {
    <?php
        if ( qtrans_getLanguage() == 'zh' ) {
               echo ( "writing-mode: tb-rl; \n" );
        }
        else {
            echo ( "writing-mode: lr-tb; \n" );
        }
    ?>
}