模組:用戶:Cedric tsan cantonais/沙盒/section langue
呢個模組嘅解說可以喺模組:用戶:Cedric tsan cantonais/沙盒/section langue/doc度開
b = require('模組:用戶:Cedric tsan cantonais/沙盒/bases')
lang = require('模組:用戶:Cedric tsan cantonais/沙盒/langues')
local p = {}
---------------------------------------------------------------------------------------------------------------------
-- 語言標題
-- 輸出通往對應辭條或專區版嘅超鏈接
-- 默認輸出通往對應辭條嘅超鏈接
function _page_langue(langue, code)
local nom_langue = b.ucfirst(langue) -- Nom en majuscule
local texte_nom = nom_langue -- Texte final
-- Cette langue a-t-elle un portail? 爾種語言有無專區版(Portal/Portail)?
-- Oui? Lien! 有?輸出鏈接。
-- (爾個功能喺法文維基辭典係用來製造通往專區版嘅超鏈接嘅。
--由於粵語維基辭典目前未決定搞唔搞語言專區,因此爾個功能目前用來製造通往分類版嘅超鏈接。)
if (lang.has_portail(code)) then
local nom_portail = '分類:' .. nom_langue
texte_nom = '[[:' .. nom_portail .. '|' .. nom_langue .. ']][[' .. nom_portail .. '|' .. nom_langue .. ']]'
-- Non: on regarde autre chose 無?睇過第啲嘢。
-- Nota: on évite de mettre un lien vers [[conventions internationales]] 避免輸出通往[[國際代碼]]嘅鏈接
-- puisqu'il est inapproprié (le sens de "conventions internationales" que
-- nous utilisons est à priori non figé et n'est pas défini dans ladite page
-- au 22/06/2015)
elseif (langue ~= 'conventions internationales') then
-- Le nom de cette langue a-t-il une page? 爾種語言個名有無辭條?
local page_langue = mw.title.new(langue)
if (page_langue.exists) then
texte_nom = '[[' .. langue .. '|' .. nom_langue .. ']]'
end
end
return texte_nom
end
-- Préparation du titre de langue : 準備語言標題
-- récupération du nom de la langue et création du texte affiché (avec ancre, catégorie et lien) 輸出語言名同可見文本
function _fait_titre_langue(code)
-- Pas de code donné ? À corriger ! 無輸入語言代碼?修改!
if (code == nil or mw.text.trim(code) == '') then
local textet = {"[[附錄:語言名稱一覽|語言未知]]"}
-- "Wiktionnaire:Sections de langue sans langue précisée"
table.insert(textet, b.fait_categorie_contenu("維基辭典:本章節語言未明"))
return table.concat(textet)
end
code = mw.text.trim(code)
-- 輸出語言名
local langue = lang.get_nom(code)
-- Création du titre à partir du nom de la langue 基於語言名製造標題
local textet_titre = {}
if langue ~= nil then
texte_langue = _page_langue(langue, code)
table.insert(textet_titre, texte_langue)
-- Catégorie 分類
table.insert(textet_titre, b.fait_categorie_contenu(langue))
-- Si le code langue ne correspond à aucune langue définie 如果語言代碼唔對應任何語言
else
table.insert(textet_titre, b.ucfirst(code))
table.insert(textet_titre, "[[附錄:語言名稱一覽|<span title=\"語言代碼未明\">*</span>]]")
table.insert(textet_titre, b.fait_categorie_contenu('維基辭典:章節語言代碼未明'))
end
return '<span class="sectionlangue" id="' .. code .. '">' .. table.concat(textet_titre) .. '</span>'
end
-- LANGUE : FONCTION POUR MODÈLE 語言:模嘅功能
-- Création d'un titre de section de langue 為指定語言製造章節標題
function p.section_langue(frame)
-- Récupération des variables nécessaires à la création du titre
local args = frame:getParent().args
return p.section_langue_args(args)
end
function p.section_langue_args(args)
local code_langue = args[1]
local rare
if (b.page_de_contenu() == true) then
rare = p.get_lettres_rares(code_langue)
end
if (rare == nil) then rare = '' end
return _fait_titre_langue(code_langue) .. rare
end
function p.get_lettres_rares(code)
if (code == nil) then return nil end
-- Espaces avant et après enlevées
code = mw.text.trim(tostring(code))
-- Récupère la table des langues Wikimedia (en cache)
local langues = mw.loadData('模組:用戶:Cedric tsan cantonais/沙盒/langues/lettres_rares')
if (langues == nil) then return nil end
if (langues[code] == nil) then return nil end
if (langues[code]['rare'] == nil) then return nil end
-- Catégories si lettres rares
local cat = ""
local l = 0
titre = mw.title.getCurrentTitle().text
for i = 1, string.len(titre) do
l = mw.ustring.find(mw.ustring.sub(titre, i, i), tostring(langues[code]['rare']))
if l ~= nil then
cat = cat .. "[[分類:含有" .. b.lc(mw.ustring.sub(titre, i, i)) .. '字嘅' .. lang.get_nom(code) .. "字詞]]"
end
end
return cat
end
return p