Wordpress Localization

wp i18n make-pot . languages/domain.pot (这个domain很重要,不是plugin的名字) copy my-plugin.pot to domain-zh_CN.po msgfmt -o domain-zh_CN.mo domain-zh_CN.po copy po和mo文件到 wp-content/languages/plugins/ 目录 change wp-config.php: define (‘WPLANG’, ‘zh_CN’); Go to wp-admin/options-general.php or “Settings” -> “General” Select your language in “Site Language” dropdown Go to wp-admin/update-core.php Click “Update translations”, when available Core translations files are downloaded, Read more…

加密中不同文件格式的区别

SSL SSL – Secure Sockets Layer,现在应该叫”TLS”,但由于习惯问题,我们还是叫”SSL”比较多.http协议默认情况下是不加密内容的,这样就很可能在内容传播的时候被别人监听到,对于安全性要求较高的场合,必须要加密,https就是带加密的http协议,而https的加密是基于SSL的,它执行的是一个比较下层的加密,也就是说,在加密前,你的服务器程序在干嘛,加密后也一样在干嘛,不用动,这个加密对用户和开发者来说都是透明的.[维基百科] OpenSSL – 简单地说,OpenSSL是SSL的一个实现,SSL只是一种规范.理论上来说,SSL这种规范是安全的,目前的技术水平很难破解,但SSL的实现就可能有些漏洞,如著名的”心脏出血”.OpenSSL还提供了一大堆强大的工具软件,强大到90%我们都用不到. 证书标准 X.509 – 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准. 编码格式 同样的X.509证书,可能有不同的编码格式,目前有以下两种编码格式. PEM – Privacy Enhanced Mail,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码.查看PEM格式证书的信息: openssl x509 -in certificate.pem -text -nooutApache和*NIX服务器偏向于使用这种编码格式. DER – Distinguished Encoding Rules,打开看是二进制格式,不可读.查看DER格式证书的信息: openssl x509 -in certificate.der -inform der -text -nooutJava和Windows服务器偏向于使用这种编码格式. 相关的文件扩展名 这是比较误导人的地方,虽然我们已经知道有PEM和DER这两种编码格式,但文件扩展名并不一定就叫”PEM”或者”DER”,常见的扩展名除了PEM和DER还有以下这些,它们除了编码格式可能不同之外,内容也有差别,但大多数都能相互转换编码格式. CRT – CRT应该是certificate的三个字母,其实还是证书的意思,常见于*NIX系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,相信你已经知道怎么辨别. CER – 还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码. KEY – 通常用来存放一个公钥或者私钥,并非X.509证书,编码同样的,可能是PEM,也可能是DER.查看KEY的办法:openssl rsa -in mykey.key -text -noout如果是DER格式的话,同理应该这样了:openssl rsa -in mykey.key -text Read more…

UI界面16条设计黄金原则

1. 使用留白和分组来划分元素 把信息分成几组相关元素可以帮助构建一个有条理的界面,更易于组织和阅读信息。这样做可以让人更快更容易地理解和记住界面的内容。 你可以使用这些方法来对信息分组: 使用容器是将界面元素分组的最强视觉表现方式,但它可能会增加不必要的杂乱感。寻找使用其他分组方法的机会,它们通常更微妙,可以帮助简化设计。 使用留白是一个非常有效的元素分组方式,你可以同时使用这些方法用以更好的将信息组织起来。 比如在下面的例子中,留白空间不够,让信息显得挤在一起难以阅读,通过增加留白,能帮助更好的对信息进行分组,让整个排版显得更舒服,更利于阅读。 2. 保持一致性 在 UI 设计中,一致性的意思是相似的元素,在外观和行为上保持相似。这种一致性不仅在你自己设计的产品中保持,也应该与其他已有的产品相类似,以保证用户的心智统一。这样可以提高可用性并减少错误,用户不再需要重新学习如何使用。 在下面的例子中,图标的风格是不统一的,一些图标是填充的一些是描边的。这会让用户感到困惑,填充图标通常会让用户觉得是已经选择了。当所有图标都用描边的形式,统一描边 2pt 的粗细和统一的圆角,并设计相似的视觉重量,那么就可以很好的提高一致性。 文本用来提升图标的易读性,以帮助用户更好的理解它的意思。特别是当一些用户使用读屏时(屏幕阅读器是一种软件,用于描述界面,并通过语音或盲文向看不到它的人进行描述)。 3. 确保看起来相似的元素功能也相似 如果元素看起来是类似的,用户会觉得它们在功能上也是类似的。因此,尝试确保对于具有相同功能的元素使用一致的视觉设计。相反,尝试确保具有不同功能的元素看起来也是不同的。 在我们的例子中,图标区域的样式与“Book now”按钮的样式非常类似。这使得它们看起来是可以点击的,但实际上是不可以的。把底部的蓝色背景区域去掉,避免用户的误解。 4. 创建一个清晰的层次结构 不是所有在界面上的信息都同等重要,为了让信息更容易理解,要让更重要的信息被设计的更突出一些。 一个清晰的层次关系,能帮助用户更快的阅读内容,并能把焦点放到他感兴趣的地方。同时,它还可以通过创造秩序来提高美学效果。你可以通过大小、颜色、对比、间距、位置和深度进行优化,打造一个清晰的视觉层级。 下面的例子是一个视觉层次不清晰的网站 banner 示例,在它下面是一个明确的层次结构的案例。 一个非常快且容易的检查你的视觉设计层次是否清晰的方法是采用“眯眼测试( Squint Test)”。只需眯起眼睛观察你的设计,或者远离屏幕或使设计模糊。你仍应该能够看出哪些元素最重要,知道界面的用途。 用“眯眼测试”看下面的例子,我们可以发现多个具有类似视觉强度的元素在争抢用户的注意力。同时,左下角的主要操作反而没有凸显出来。 主要按钮在界面中通常是最突出的元素。通过给它一个与背景强对比的颜色,并把字体加粗可以实现这一点。这样做也解决了可读性的问题,后面会详细研究。 再次用上“眯眼测试”,主要按钮这次成了页面中最突出的元素了。 视觉层次现在终于清晰了,但依然还有提升的空间。例如,正文相对于它的层级来说,还是有点太突出了。 5. 删除不必要的样式 不必要的信息和视觉样式可能会分散注意力,增加认知负荷。避免使用不必要的线条、颜色、背景和动画,目的是创建一个更简单、更专注的界面。 在我们的例子中,图片周围的留白和描边是没必要的,会增加视觉复杂度。这些样式不需要来传达信息或对元素进行分组,因此我们可以安全地将它们删减以简化设计。 6. 有目的的使用颜色 有目的地、节制地使用颜色。尽量避免仅仅因为装饰而使用颜色,因为这样会让人感到混乱和分散注意力。从黑白开始,只在需要传达意义时才引入颜色。 一个简单有效的方式是把品牌颜色应用到文字链接和按钮等可交互的元素上。它能帮助用户理解哪些是可点击的而哪些不可以。尝试避免使用品牌颜色在不可交互的元素上。 你也不需要把品牌颜色应用到所有可交互的元素上,一些元素其实本身就已经给出了可交互的线索。例如,卡片设计本身给人的隐喻就是全部可点击的,所以不需要在文字上单独再加一个蓝色的链接。 在我们的例子中,优化前的蓝色标题可起来还挺好看的,但它让文字看起来是可交互的。为了帮助避免这种困惑,我们需要把这种蓝色样式给移除掉。 我们同样需要把其他不可交互的元素中的蓝色样式删除掉,比如蓝色的星星。这样优化后,界面上可点不可点的信息就能一目了然了。 7. 确保界面上的元素能保持 3:1 的对比度 Read more…

What Are WordPress Transients?

In order to understand transients, it’s helpful to have some basic knowledge of caching and Application Programming Interfaces (APIs).  Caching webpage data is essentially a way of temporarily saving a website’s data so that if there are multiple requests for the same data, the site doesn’t have to re-run MySQL or PHP. This Read more…

wordpress tips tricks

Wordpress: How to add pagination to a single post

The line will fail, because on singular post view, when the URL contains ‘/page/XX/’, the variable WordPress sets is ‘page’ and not ‘paged’. You may think to use ‘page’ instead of ‘paged’, but that will not work either, because once the ‘page’ variable is intended to be used for multi-page singular post (page separation using <!–nextpage–>) and once the post Read more…