Unicode標準のすべてのコードポイントには、固有の英語名が付けられています。ドイツ語、フランス語、日本語などの言語へのこれらの名前(小さなコードセットのサブセットの場合)の翻訳が必要です...私はプロの翻訳者にアクセスできるので、これらの名前を1つずつ翻訳することはもちろん可能ですが結果は必ずしもUnicode標準の意図をよく表しているわけではありません。 Unicode委員会が既に英語以外の言語のコードポイント名を標準化しようとしているのではないかと思います。私はunicode.orgで英語以外のものを見つけることはできませんでしたが、私はまだ何かを逃したと思っています。前もって感謝します!Unicode文字の名前の標準化された翻訳はありますか?
2
A
答えて
0
.NET
/PowerShellの例:[Microsofts.CharMap.UName]::Get('č')
のWindows OS:ローカライズライブラリgetuname.dll
に保存されているローカライズされたUnicodeプロパティ(少なくともname
が、)があります。直接次のスクリプトを使用するか、そこにインスピレーションを得る:
<#
Origin by: http://poshcode.org/5234
Improved by: https://stackoverflow.com/users/3439404/josefz
Use this like this: "ábč",([char]'x'),0xBF | Get-CharInfo
Activate dot-sourced like this (apply a real path instead of .\):
. .\_get-CharInfo_1.1.ps1
#>
Set-StrictMode -Version latest
Add-Type -Name UName -Namespace Microsofts.CharMap -MemberDefinition $(
switch ("$([System.Environment]::SystemDirectory -replace
'\\', '\\')\\getuname.dll") {
{Test-Path -LiteralPath $_ -PathType Leaf} {@"
[DllImport("${_}", ExactSpelling=true, SetLastError=true)]
private static extern int GetUName(ushort wCharCode,
[MarshalAs(UnmanagedType.LPWStr)] System.Text.StringBuilder buf);
public static string Get(char ch) {
var sb = new System.Text.StringBuilder(300);
UName.GetUName(ch, sb);
return sb.ToString();
}
"@
}
default {'public static string Get(char ch) { return "???"; }'}
})
function Get-CharInfo {
[CmdletBinding()]
[OutputType([System.Management.Automation.PSCustomObject],[System.Array])]
param(
[Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)]
$InputObject
)
begin {
function out {
param(
[Parameter(Position=0, Mandatory=$true)] $ch,
[Parameter(Position=1, Mandatory=$false)]$nil=''
)
if (0 -le $ch -and 0xFFFF -ge $ch) {
[pscustomobject]@{
Char = [char]$ch
CodePoint = 'U+{0:X4}' -f $ch
Category = [System.Globalization.CharUnicodeInfo]::GetUnicodeCategory($ch)
Description = [Microsofts.CharMap.UName]::Get($ch)
}
} elseif (0 -le $ch -and 0x10FFFF -ge $ch) {
$s = [char]::ConvertFromUtf32($ch)
[pscustomobject]@{
Char = $s
CodePoint = 'U+{0:X}' -f $ch
Category = [System.Globalization.CharUnicodeInfo]::GetUnicodeCategory($s, 0)
Description = '???' + $nil
}
} else {
Write-Warning ('Character U+{0:X} is out of range' -f $ch)
}
}
}
process {
if ($PSBoundParameters['Verbose']) {
Write-Warning "InputObject type = $($InputObject.GetType().Name)"}
if ($null -cne ($InputObject -as [char])) {
#Write-Verbose "A $([char]$InputObject) InputObject character"
out $([int][char]$InputObject) ''
} elseif ($InputObject -isnot [string] -and $null -cne ($InputObject -as [int])) {
#Write-Verbose "B $InputObject InputObject"
out $([int]$InputObject) ''
} else {
$InputObject = [string]$InputObject
#Write-Verbose "C $InputObject InputObject.Length $($InputObject.Length)"
for ($i = 0; $i -lt $InputObject.Length; ++$i) {
if ( [char]::IsHighSurrogate($InputObject[$i]) -and
(1+$i) -lt $InputObject.Length -and
[char]::IsLowSurrogate($InputObject[$i+1])) {
$aux = ' 0x{0:x4},0x{1:x4}' -f [int]$InputObject[$i],
[int]$InputObject[$i+1]
Write-Verbose "surrogate pair $aux at position $i"
out $([char]::ConvertToUtf32($InputObject[$i], $InputObject[1+$i])) $aux
$i++
} else {
out $([int][char]$InputObject[$i]) ''
}
}
}
}
}
例:後者(半ローカライズ)の出力は、次のコードから来ること
PS D:\PShell> "ábč",([char]'x'),0xBF | Get-CharInfo
Char CodePoint Category Description
---- --------- -------- -----------
á U+00E1 LowercaseLetter Latin Small Letter A With Acute
b U+0062 LowercaseLetter Latin Small Letter B
č U+010D LowercaseLetter Latin Small Letter C With Caron
x U+0078 LowercaseLetter Latin Small Letter X
¿ U+00BF OtherPunctuation Inverted Question Mark
PS D:\PShell> Get-Content .\DataFiles\getcharinfoczech.txt
Char CodePoint Category Description
---- --------- -------- -----------
á U+00E1 LowercaseLetter Malé písmeno latinky a s čárkou nad vpravo
b U+0062 LowercaseLetter Malé písmeno latinky b
č U+010D LowercaseLetter Malé písmeno latinky c s háčkem
x U+0078 LowercaseLetter Malé písmeno latinky x
¿ U+00BF OtherPunctuation Znak obráceného otazníku
PS D:\PShell>
ノート(同じコンピュータ上で実行ローカライズされたユーザーの下で):
"ábč",([char]'x'),0xBF | Get-CharInfo | Out-File .\DataFiles\getcharinfoczech.txt
関連する問題
- 1. mt19937は標準翻訳のメンバーではありません。
- 2. メールヘッダ内のUnicode文字の翻訳
- 3. ISO標準命名の標準はありますか?
- 4. WordPressのカスタム翻訳ショートコードで翻訳された文字列を返す方法
- 5. DoctrineExtensionsで翻訳されたDoctrineエンティティのクローン化翻訳可能
- 6. warファイルの標準文字エンコードはありますか?
- 7. UNIXのコマンドラインパラメータの標準化されたドキュメントはどこにありますか?
- 8. Java8に標準化された汎用の機能インタフェースはありますか?
- 9. haskellに標準モジュール/名前空間の命名規則はありますか?
- 10. URLエンコードされた非標準文字
- 11. カテゴリコーディングの前後に標準化されていますか?
- 12. 翻訳された文字列でのvarsによるJavaFX国際化
- 13. Pythonは標準化された言語ではありませんか?
- 14. Google Analyticsキリル文字またはUnicodeの名前
- 15. .NET言語パックで翻訳された文字列の例
- 16. google translate - 翻訳されたスクリプトの下付き文字
- 17. 名前マングリングが標準化されていない理由
- 18. マイナスプラスのためのUnicode文字はありますか? (+/-)
- 19. ABAPの標準言語テキストを翻訳する
- 20. "number of"には標準の簡潔な名前がありますか?
- 21. Gnu-Linux/Unix-terminalの標準または標準幅はありますか?
- 22. QT_TR_NOOP:翻訳ファイルは生成されますが、翻訳された文字列は使用されません。なぜですか?
- 23. Unicode標準の絵文字の正しいリストは何ですか?
- 24. これらのUnicode文字はありますか?
- 25. Django翻訳 - 動的文字列の翻訳
- 26. 次のコードパターンの標準名はありますか?
- 27. 機能を翻訳:「エラー:シーケンスは、文字のベクトルではありません」
- 28. 部分的に翻訳されたサイトの翻訳は可能ですか?
- 29. 標準フォーマットのSAML 2.0で暗号化されたアサーションがあります
- 30. 標準のボタンサイズはありますか?