powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Транслит из английского в русский
2 сообщений из 2, страница 1 из 1
Транслит из английского в русский
    #38821021
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть вот такой замечательный транслит на мсскл
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Translit] (@str varchar(4000))  
RETURNS varchar(4000)  AS  
BEGIN 
 	

	-- транслитерация по ГОСТ-а 7.79-2000
	
	declare @str_lat varchar(8000)
	declare @rus varchar(100), @lat1 varchar(100), @lat2 varchar(100), @lat3 varchar(100)
	set @rus =  'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
	set @lat1 = 'abvgdejzzijklmnoprstufkccss"y''ejj' 
	set @lat2 = '      oh  j           h hhh   hua'
	set @lat3 = '                          h      '
	
	declare @i int, @pos int, @ch varchar(2)
	set @i = 1
	set @str_lat = ''
	
	while @i <= len(@str)
	begin
		set @ch = substring(@str, @i, 1)
		set @pos = charindex(lower(@ch), @rus)
	
		if @pos > 0
		begin
			if ascii(upper(@ch)) = ascii(@ch)
				set @str_lat = @str_lat + upper(substring(@lat1, @pos, 1)) + rtrim(substring(@lat2, @pos, 1)) + rtrim(substring(@lat3, @pos, 1))
			else
				set @str_lat = @str_lat + substring(@lat1, @pos, 1) + rtrim(substring(@lat2, @pos, 1)) + rtrim(substring(@lat3, @pos, 1))
		end
		else
			set @str_lat = @str_lat + @ch
		set @i = @i + 1
	end
	
	return @str_lat
END


кто нибудь делал транслит из английского на русский на пхп?
...
Рейтинг: 0 / 0
Транслит из английского в русский
    #38821060
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnitкто нибудь делал транслит из английского на русский на пхп?ЯП мало имеет значение, преобразование строки по набору правил - не такая уж сложная задача. Массив с соответствиями вида "лат=>рус" + посимвольный перебор строки с забеганием вперед для выявления двух- и более буквенных ключей. Как вариант, конечно.

Вот разброд существующих "правил" гораздо сложнее формализовать для более-менее нормального транслита. Например, буква "w" иногда используется в качестве буквы "й" - в данном коде это не отражено. "sch" используется для замены "щ" в транслите, но обратное преобразование неоднозначно. Либо ограничиться только жестко заданными относительно простыми правилами.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Транслит из английского в русский
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]