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)); } }
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)); } }