模組討論:Lang

页面内容不支持其他语言。
维基百科,自由的百科全书
          模块依照頁面品質評定標準无需评级。
本模块属于下列维基专题范畴:
语言专题 (获评模块級不适用重要度
本模块属于语言专题范畴,该专题旨在改善中文维基百科语言相关条目类内容。如果您有意参与,请浏览专题主页、参与讨论,并完成相应的开放性任务。
 模块级模块  根据质量评级标准,本模块无需评级。

編輯請求 2019-08-13

请求已处理--Xiplus#Talk 2019年8月16日 (五) 11:38 (UTC)[回复]

@Xiplus模块里有个make_category的函数,这里面的的意思是特殊的code需要做特殊的分类处理,比如中文会加入Category:含有明確引用中文的條目而不是Category:含有中文的條目,而英语德语之类的不需要做特殊处理,所以这些部分可以删掉。现在最需要添加的是韩语的特殊处理,因为刚刚Template:Lang-ko改成了使用本模块,而中文维基是建立的是Category:含有朝鮮語的條目,而不是Category:含有韓語的條目,导致现在属于Category:含有朝鮮語的條目的页面数量正在一点一点地往下降,所以这部分要赶紧修改。我在沙盒里修改了这个函数,做更新的时候只需要覆盖make_category函数即可。--Vozhuowhisper 2019年8月13日 (二) 15:05 (UTC)[回复]

@Vozhuo我沒看到問題,頁面仍然在Category:含有朝鮮語的條目。--Xiplus#Talk 2019年8月15日 (四) 13:49 (UTC)[回复]
@Xiplus我当时看的时候分类有14000+页面,每刷新一次页面数就掉一次,现在页面有13000+,估计已经掉光了。可以看一个例子,“CJ集团”条目用了lang-ko模板,但其页面属性没有Category:含有朝鮮語的條目,反而却有了Category:含有非中文內容的條目。光看Category:含有非中文內容的條目第一页就有大量韩国相关的条目,这些明显都是被错分类的。--Vozhuowhisper 2019年8月16日 (五) 11:31 (UTC)[回复]

請修正lang_xx_inherit

请求已拒绝

當使用lang-xx模板時候,如果script=Yyyy被指定,此時的轉寫會被渲染成xx-Yyyy-Latn模式,導致渲染失敗。請將其修正為xx-Latn模式,確保Yyyy不會影響Latn的渲染,謝謝!--173.68.165.114留言2020年8月27日 (四) 16:35 (UTC)[回复]

請在沙盒提供新版本。--Xiplus#Talk 2020年9月30日 (三) 08:26 (UTC)[回复]

編輯請求 2021-02-12

请求已处理

在模块中添加:

--[[--------------------------< _ N A M E _ F R O M _ T A G >--------------------------------------------------
Returns language name associated with IETF language tag if valid; error message else.
All code combinations supported by {{lang}} and the {{lang-xx}} templates are supported by this function.
Set invoke's |link= parameter to yes to get wikilinked version of the language name.
Module entry point from another module
]]
local function _name_from_tag (args)
	local subtags = {};															-- IETF subtags script, region, variant, and private
	local raw_code = args[1];													-- save a copy of the input IETF subtag
	local link = 'yes' == args['link'];											-- make a boolean
	local label = args.label;
	local code;																	-- the language code
	local msg;																	-- gets an error message if IETF language tag is malformed or invalid
	local language_name = '';
	
	code, subtags.script, subtags.region, subtags.variant, subtags.private, msg = get_ietf_parts (raw_code);
	if msg then
		local template = (args['template'] and table.concat ({'{{', args['template'], '}}: '})) or '';	-- make template name (if provided by the template)
		return table.concat ({'<span style=\"font-size: 100%; font-style: normal;\" class=\"error\">Error: ', template, msg, '</span>'});
	end

	raw_code = format_ietf_tag (code, subtags.script, subtags.region, subtags.variant, subtags.private);	-- format to recommended subtag styles; private omitted because private
	language_name = language_name_get (raw_code, code);							-- get language name; try ietf tag first, then code w/o variant then code w/ variant

	language_name = language_name:gsub ('%s+%b()', '');							-- remove IANA parenthetical disambiguators or qualifiers from names that have them

	if link then																-- when |link=yes, wikilink the language name
		if language_name:find ('languages') then
			language_name = make_wikilink (language_name, label);				-- collective language name uses simple wikilink
		elseif lang_data.article_name[code] then
			language_name = make_wikilink (lang_data.article_name[code][1], label or language_name);	-- language name with wikilink from override data
		else
			language_name = make_wikilink (language_name .. ' language', label or language_name);	-- language name with wikilink
		end
	end

	return language_name;
end


--[[--------------------------< N A M E _ F R O M _ T A G >----------------------------------------------------

Module entry point from an {{#invoke:}}

]]

local function name_from_tag (frame)											-- entry point from an {{#invoke:Lang|name_from_tag|<ietf tag>|link=<yes>|template=<template name>}}
	return _name_from_tag (getArgs(frame))										-- pass-on the args table, nothing else; getArgs() so we also get parent frame
end


--[[--------------------------< _ T A G _ F R O M _ N A M E >--------------------------------------------------

Returns the ietf language tag associated with the language name.  Spelling of language name must be correct
according to the spelling in the source tables.  When a standard language name has a parenthetical disambiguator,
that disambiguator must be omitted (they are not present in the data name-to-tag tables).

Module entry point from another module

]]

local function _tag_from_name (args)											-- entry point from another module
	local msg;

	if args[1] and '' ~= args[1] then
		local data = mw.loadData ('Module:Lang/tag from name');					-- get the reversed data tables TODO: change when going live
		local lang = args[1]:lower();											-- allow any-case for the language name (speeling must till be correct)
		local tag = data.rev_override_table[lang] or data.rev_lang_table[lang] or data.rev_lang_dep_table[lang];	-- get the code; look first in the override then in the standard

		if tag then
			return tag, true;													-- language name found so return tag and done; second return used by is_lang_name()
		else
			msg = 'language: ' .. args[1] .. ' not found'						-- language name not found, error message
		end
	else
		msg = 'missing language name'											-- language name not provided, error message
	end
	local template = '';
	if args.template and '' ~= args.template then
		template = table.concat ({'{{', args['template'], '}}: '});				-- make template name (if provided by the template)
	end
	return table.concat ({'<span style=\"font-size: 100%; font-style: normal;\" class=\"error\">Error: ', template, msg, '</span>'});
end
--[[--------------------------< T A G _ F R O M _ N A M E >----------------------------------------------------
Module entry point from an {{#invoke:}}
]]
local function tag_from_name (frame)											-- entry point from an {{#invoke:Lang|tag_from_name|<language name>|link=<yes>|template=<template name>}}
	local result, _ = _tag_from_name (getArgs(frame))							-- pass-on the args table, nothing else; getArgs() so we also get parent frame; supress second return used by is_lang_name()
	return result;		
end

Special:PermanentLink/64248037#In lang模块。由于本人不太了解技术细节,因此只是从英维对应模块处拷贝了以上代码。有可能无法正常工作。----Yining Chen留言|签名2021年2月12日 (五) 08:57 (UTC)[回复]

還要配合Module_talk:Lang/data#編輯請求_2021-02-12-- Sunny00217  2021年2月12日 (五) 12:04 (UTC)[回复]
我已在沙盒中合并英文维基的最新版本,但需要测试。--Vozhuowhisper 2021年2月12日 (五) 14:44 (UTC)[回复]
目前还需要更新Module:TableTools,请看到的管理员先更新TableTools模块。--Vozhuowhisper 2021年2月18日 (四) 06:04 (UTC)[回复]
Module:TableTools已更新,请在Module_talk:Lang/testcases检查变更后的格式变化。--Vozhuowhisper 2021年2月24日 (三) 08:23 (UTC)[回复]
检查完毕,要是没有其他人提出意见的话我会认为当前沙盒版本中的内容可以正常运作。管理员需要同时更新Module:LangModule:Lang/dataModule:Language/data/iana_languages,替换为各自沙盒中的内容(沙盒修改日期为3月3日,以防之后有其他人更新)。另外更新之后不建议全保护Module:Lang/data,因为这里面的中文还没写完,经常要添加新的语言,全保护的话修改请求经常无法得到及时反馈,建议降为模板保护。--Vozhuowhisper 2021年3月3日 (三) 10:47 (UTC)[回复]
我在查看Module_talk:Lang/testcases页面的时候发现页面上显示了大量错误,这个是代码设计成这样的吗?--Yining Chen留言|签名2021年3月4日 (四) 11:23 (UTC)[回复]
现在的沙盒中的版本是待更新的版本,不能用来检查测试样例,要检查测试样例需要修改Module:Lang/sandbox的第13行(改为加载Module:Lang/data/sandbox)和Module:Lang/data/sandbox的51和52行(改为加载Module:Language/data/iana languages/sandbox)。--Vozhuowhisper 2021年3月4日 (四) 14:30 (UTC)[回复]
改动稍大,稳妥起见等待至3月10日执行修改。--Tiger留言2021年3月7日 (日) 07:50 (UTC)[回复]
按请求将Module:LangModule:Lang/dataModule:Language/data/iana_languages分别替换成3月3日时的沙盒版本后,条目内出现Lua错误 在Module:Lang的第589行:尝试读取空全局变量:page_exists,遂予以回退。--Tiger留言2021年3月11日 (四) 01:18 (UTC)[回复]
@Tigerzeng哎呀,我忘记把这个函数加上了,现在的Module:Lang/sandbox可以了。--Vozhuowhisper 2021年3月12日 (五) 11:09 (UTC)[回复]
完成,感谢。--Tiger留言2021年3月12日 (五) 13:09 (UTC)[回复]

In lang模块

{{In lang}}模板中显示Module:In lang错误(模板固定链接:Special:PermanentLink/63906340,模块固定链接:Special:PermanentLink/63906389),有办法能够修复吗?感谢。--Yining Chen留言|签名2021年2月12日 (五) 02:07 (UTC)[回复]

粗看了一下是Module:Lang没有同步英文维基的版本,缺少name_from_tag这个函数。要更新的话最好还是走 ep 流程。 --砜中嘌呤的白磷萃取 打谱 2021年2月12日 (五) 03:24 (UTC)[回复]
感谢。已提交至Module_talk:Lang。--Yining Chen留言|签名2021年2月12日 (五) 08:59 (UTC)[回复]

现在输出的是语言的英文名称,是否需要改成中文?——BlackShadowG留言维基百科20岁生日快乐! 2021年2月28日 (日) 13:52 (UTC)[回复]

应该要。现在沙盒版本里的语言名称已经被汉化了,把开头的 In 改掉就行。不过我想问,这个模板和{{ja icon}}之类是不是重复了?英文版没有后者。 --砜中嘌呤的白磷萃取 打谱 2021年3月3日 (三) 03:58 (UTC)[回复]
@WhitePhosphorus:xx icon一类的模板在英文版是因为与本模板重复被删除了,我觉得这个模板不会重复且很有必要,因为使用xx icon一类的模板一次只能标记一种语言,如果网页有多种语言的话就得使用多个xx icon模板标记,这样的效果很不好,比如中文、英文和日文网页用xx icon模板标记会成为这样:(中文)(英文)(日語),而本模板可以兼容多个语言参数,希望将来本模板的显示效果可以与cite web模板的language参数一样,用于标记多语言的网页,如下:示例 (中文、英语及日语). Category:CS1英语来源 (en)。——BlackShadowG留言维基百科20岁生日快乐! 2021年3月4日 (四) 11:34 (UTC)[回复]
管理员可以先处理Module_talk:Lang的编辑请求。--Vozhuowhisper 2021年3月3日 (三) 11:02 (UTC)[回复]
报错了。--Yining Chen留言|签名2021年3月11日 (四) 14:32 (UTC)[回复]
Module:Lang已更新,In lang可以正常显示了。要是这个模板真的在中文维基启用的话那些xx icon模板就可以计划删掉了,{{In lang|ja}}的写法完全可以代替{{ja icon}},或者可以用字符更少的{{LL|ja}}写法。--Vozhuowhisper 2021年3月12日 (五) 14:45 (UTC)[回复]
另外还需要解决的问题是显示样式:(日語)(日語),本来中文英文维基都是用的右边的样式,但是英文维基cite web等模板后来改成了左边的样式,中文维基并未跟进。所以要么把in lang改成中文维基现在用的样式,要么把cite web等模板更新成英文维基现在的样式。--Vozhuowhisper 2021年3月12日 (五) 15:21 (UTC)[回复]
现行的{{ja icon}}的鼠标浮现文字是“连接到X语网页”。但像{{Cite book}}QWER (日语). Category:CS1日语来源 (ja)这里并没有什么网页可供连接。作为类似的式样,似乎要一起考虑。--洛普利宁 2021年3月12日 (五) 15:36 (UTC)[回复]
@Vozhuo:,我已经修改了模块把{{in lang}}的显示样式更改为{{language icon}}的样式了,而cite web一类的模板似乎是直接引用了{{language icon}}模板,因此出现了@Lopullinen提到的悬浮文字的问题。我认为可以吧language icon的默认悬浮文字去掉,因为目前似乎language icon不只是用于标记网页,有些编者也会使用language icon标记书籍的语言。——BlackShadowG留言维基百科20岁生日快乐! 2021年3月21日 (日) 01:13 (UTC)[回复]

編輯請求 2022-02-28

请求已处理--Xiplus#Talk 2022年3月11日 (五) 02:16 (UTC)[回复]

回應迴廊彼端的回饋:[1]

編輯請參考沙盒,第1119行if args.links and args.link and (args.links ~= args.link) then

既links和link設為別名,那麼提議只在兩個參數值不一樣時才顯示衝突。 這樣以來,在lang-xx模板中可以使用其中任何一個參數。

目前{{lang-de}}

  • {{lang-de|test|link=no}} → 德語:test
  • {{lang-de|test|links=no}} → [test] 错误:Template:Lang-xx:冲突:|links= 和 |link=(帮助
  • {{lang-de|test|link=yes}}德語test
  • {{lang-de|test|links=yes}} → [test] 错误:Template:Lang-xx:冲突:|links= 和 |link=(帮助

沙盒{{lang-de/sandbox}}

  • {{lang-de/sandbox|test|link=no}} → 德語:test
  • {{lang-de/sandbox|test|links=no}} → 德語:test
  • {{lang-de/sandbox|test|link=yes}}德語test
  • {{lang-de/sandbox|test|links=yes}}德語test

謝謝!--Tjmj留言2022年2月28日 (一) 10:41 (UTC)[回复]

編輯請求 2022-08-14

请求已处理--Xiplus#Talk 2022年8月24日 (三) 09:20 (UTC)[回复]

此頁上方曾有Module_talk:Lang#編輯請求_2019-08-13的討論,把「含有韓語的頁面」按當時狀況歸類到Category:含有朝鮮語的條目,不過目前互助客棧討論共識修改模板Template:ISO 639 name koTemplate:ISO 639 name kor兩個模板內容為繁體用語「韓語」,因此不再需要該次所新增的判別函數,直接讓頁面歸入Category:含有韓語的條目即可。又由於我不太懂相關語法,想麻煩各位協助修改。

此外使用Template:Lang-pinyinTemplate:標音Template:Pinyin、{{lang|zh-Latn|OOO}}會自動把條目歸入Category:含有中文的條目這個多餘分類,希望可以一起修改,謝謝辛苦。--迴廊彼端留言2022年8月14日 (日) 03:24 (UTC)[回复]

關於西里爾語言模板的幾個問題

1.translit參數的問題。如果使用translit參數({{lang-ru|Москва|translit=Moskva}}),會變成
俄語:Москва羅馬化:Moskva
但如果不寫參數,直接寫轉寫({{lang-ru|Москва|Moskva}}),會變成
俄语:Москва羅馬化Moskva,這裡請問一下是不是要把這兩種寫法整合一下。
2.軟音符號的問題。有些條目不會轉寫Ь(比如阿穆尔河畔共青城),有些會轉寫成'(比如乌里扬诺夫斯克),想請教應該要翻呢?還是不翻呢?
3.塞爾維亞語的轉寫。這裡確認一下,標準的轉寫是否像{{lang-sr|'''Суботица'''/'''Subotica'''}}一樣,西里爾和拉丁寫在一起。--Sean0115 2022年12月13日 (二) 14:01 (UTC)[回复]

1、感觉将 “罗马化”连接到 条目 俄语罗马化 比较好,熟悉俄语的应该是少数。 2、@Yelets--Kethyga留言2022年12月16日 (五) 05:18 (UTC)[回复]
从转写的角度说我支持加上'ʹ,也与主流转写标准、地图册、翻译辞典等一致。不加的话我觉得严格来说不是转写,而更偏向英/外语化。塞尔维亚语是西里尔拉丁都用,所以并列是没问题的。--Yelets 留言 2022年12月18日 (日) 03:57 (UTC)[回复]

可否改成调用strict库?

请求已处理

原因在Mediawiki.org了解一下,写在/sandbox里了,就改了第7行。--Liuxinyu970226留言2024年4月23日 (二) 22:07 (UTC)[回复]

完成。-Mys_721tx留言2024年4月24日 (三) 04:17 (UTC)[回复]