I am not really familiar with rdf:dirLangString, but the current definition of sh:uniqueLang
https://www.w3.org/TR/shacl12-core/#UniqueLangConstraintComponent
refers to "language tags" only. While the text direction may be stored in the language tag in TTL syntax, see
https://www.w3.org/TR/rdf12-turtle/#ex-quoted-literals
I am not clear whether our use of language tags matches the RDF 1.2 data model spec
https://www.w3.org/TR/rdf12-concepts/#dfn-dir-lang-string
(There may be other places beside sh:uniqueLang where this is relevant).
I guess at minimum, we should add a test case to clarify whether "A"@ar--rtl is the same as "A"@ar--ltr or not.