在我的网站上,我有两种语言:md
和ru
。
默认lang是:md
。
当我的用户访问网站http://site.ru/news/new-news-article时,他会显示语言md
的内容。但如果他转到http://site.ru/ru/news/new-news-article,则会在la ru
上显示内容,如果他继续http://site.ru/md/news/new-news-article,则会在md
上显示内容。
我有3种情况。
我需要当用户位于前缀为md
的语言/md/
且没有时,更改网址上的网址。
我的代码:
<link rel="alternate" hreflang="ru" href="https://<?=$_SERVER['HTTP_HOST']?><?=str_replace('/md/', '/ru/', $_SERVER['REQUEST_URI'])?>">
但这仅适用于前缀/md/
,如果用户在网址上没有前缀,则无效。
答案 0 :(得分:0)
这似乎不是处理语言的正确方法,但以下代码应该可行。如果字符串中缺少'/md/'
部分,则无法替换<?=(substr($_SERVER['REQUEST_URI'], 0, 4) === '/md/' ? str_replace('/md/', '/ru/', $_SERVER['REQUEST_URI']) : '/ru' . $_SERVER['REQUEST_URI'])?>
部分,因此您可以测试是否存在
func setUpNavigationBarTitleImage() {
let navController = navigationController!
let image = UIImage(named: "2-1 H Logo Home.png")!
let imageView = UIImageView(image: image)
let bannerWidth = navController.navigationBar.frame.size.width
let bannerHeight = navController.navigationBar.frame.size.height
imageView.frame = CGRect(x: 0, y: 0, width: bannerWidth, height: bannerHeight)
imageView.contentMode = .scaleAspectFit
imageView.center = navController.navigationBar.center
navigationItem.titleView = imageView
}
注意:有不同的方法可以拥有更好的URL语言系统。它不应该真正依赖于请求URI来了解当前页面是什么以及应该是什么。在所有情况下,如果它与浏览器设置不同,您应该设置一个变量以了解当前用户首选语言是什么。