def checkConceptLabels(val, modelXbrl, labelsRelationshipSet, disclosureSystem, concept):
    hasDefaultLangStandardLabel = False
    dupLabels = {}
    for modelLabelRel in labelsRelationshipSet.fromModelObject(concept):
        modelLabel = modelLabelRel.toModelObject
        if modelLabel is not None and modelLabel.xmlLang:
            if modelLabel.xmlLang.startswith(disclosureSystem.defaultXmlLang) and \
               modelLabel.role == XbrlConst.standardLabel:
                hasDefaultLangStandardLabel = True
            dupDetectKey = ( (modelLabel.role or ''), modelLabel.xmlLang)
            if dupDetectKey in dupLabels:
                modelXbrl.error("SBR.NL.2.2.1.05",
                    _("Concept %(concept)s has duplicated labels for role %(role)s lang %(lang)s."),
                    modelObject=(modelLabel, dupLabels[dupDetectKey]), # removed concept from modelObjects
                    concept=concept.qname, role=dupDetectKey[0], lang=dupDetectKey[1])
            else:
                dupLabels[dupDetectKey] = modelLabel
            if modelLabel.role in (XbrlConst.periodStartLabel, XbrlConst.periodEndLabel):
                modelXbrl.error("SBR.NL.2.3.8.03",
                    _("Concept %(concept)s has label for semantical role %(role)s."),
                    modelObject=modelLabel, concept=concept.qname, role=modelLabel.role)
    for role, lang in dupLabels.keys():
        if role and lang != disclosureSystem.defaultXmlLang and (role,disclosureSystem.defaultXmlLang) not in dupLabels:
            modelXbrl.error("SBR.NL.2.3.8.05",
                _("Concept %(concept)s has en but no nl label in role %(role)s."),
                modelObject=(concept,dupLabels[(role,lang)]), concept=concept.qname, role=role)
            

        
# for SBR 2.3.4.01
dataset/ETHPy150Open Arelle/Arelle/arelle/plugin/validate/SBRnl/Filing.py/checkConceptLabels/original