예제 #1
0
파일: Tr.cs 프로젝트: dngulin/ttyhlauncher2
        public static string _(string msg)
        {
            using (var cStrMsg = new CStringHolder(msg)) {
                var ptr = gettext(cStrMsg.Ptr);

                if (ptr == cStrMsg.Ptr)
                {
                    return(cStrMsg.Str);
                }

                // The resulting string is statically allocated and must not be modified or freed
                return(Marshal.PtrToStringAnsi(ptr));
            }
        }
예제 #2
0
파일: Tr.cs 프로젝트: dngulin/ttyhlauncher2
        public static string _n(string msgSingle, string msgPlural, ulong n)
        {
            using (var cStrMsgSingle = new CStringHolder(msgSingle))
                using (var cStrMsgPlural = new CStringHolder(msgPlural)) {
                    var ptr = ngettext(cStrMsgSingle.Ptr, cStrMsgPlural.Ptr, n);

                    if (ptr == cStrMsgSingle.Ptr)
                    {
                        return(cStrMsgSingle.Str);
                    }

                    if (ptr == cStrMsgPlural.Ptr)
                    {
                        return(cStrMsgPlural.Str);
                    }

                    // The resulting string is statically allocated and must not be modified or freed
                    return(Marshal.PtrToStringAnsi(ptr));
                }
        }